希望某人可以帮助我提高我的尴尬命令!
假设我的文本文件大约有30行此类内容:
ENTIRE:11.3.28.4.0
OSVER:Solaris11
VARFREE:3G
我将这些分配给了这样的bash脚本中的变量:
ENTIRE=$(awk -F: '$1 ~ /ENTIRE/ {print $2}' $HOSTFILE)
RELEASE=$(awk -F: '$1 ~ /RELEASE/ {print $2}' $HOSTFILE)
OSVER=$(awk -F: '$1 ~ /OSVER/ {print $2}' $HOSTFILE)
因为我有大约30个,这意味着尴尬运行了30次,这很慢,显然不是最好的方法。
任何人都可以建议我如何将它们构建到一个尴尬命令中?
预先感谢!
您根本不需要awk
。如果修改原始文件不是选项,请使用while
循环和declare
命令定义每个变量。
while IFS=: read name value; do
declare "$name=$value"
done < "$HOSTFILE"
一个例子:
$ IFS=: read name value <<< "foo:bar"
$ declare "$name=$value"
$ echo "$foo"
bar