我可以重定向输出,然后 cat 文件并 grep/awk 变量,但我想将此文件用于多个变量。
所以如果它是一个变量,比如 STATUS 那么我可以做一些事情,比如
echo "STATUS $STATUS" >> variable.file
#later perhaps in a remote shell where varible.file was copied
NEW_VAR=`cat variable.file | awk print '{$2}'`
我想用 sed 进行一些内联编辑会有所帮助。代码越小越好。
最佳答案
在文件中存储变量的一种常见方法是只在文件中存储 NAME=value
行,然后将其源到你想要获取变量的 shell 中。
echo 'STATUS="'"$STATUS"'"' >> variable.file
# later
. variable.file
在 Bash 中,您还可以使用 source
而不是 .
,尽管这可能无法移植到其他 shell。仔细注意在文件中打印出正确的双引号所需的确切引号顺序。
如果您想一次将多个变量放入文件中,您可以执行以下操作。为正确和便携地进行引用扭曲而道歉;如果你限制自己使用 Bash,你可以使用 $""
来简化引用:
for var in STATUS FOO BAR
do
echo "$var="'"'"$(eval echo '$'"$var")"'"'
done >> variable.file
关于bash - 如何使用 bash 将变量存储在文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965737/