bash - 如何使用 bash 将变量存储在文件中?

标签 bash

我可以重定向输出,然后 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/

相关文章:

linux - rsync 仅某些类型的文件

Perl INT 处理程序和 Bash STDERR 重定向

linux - 在 Bash 中解析文件名

bash - 在 VSCode 终端中运行 msys2 shell

bash - 在 bash 脚本中使用 ssh key

ruby-on-rails - 使用一些参数运行 rails runner

python - 在Python中执行一个BASH命令——在同一个进程中

c++ - 将 ls 输出转换为整数

linux - 为什么用(ps -f&)显示进程信息,然后显示1的PPID而不是主shell(-bash)的PID?

删除数字的linux shell脚本