Bash UNIX脚本-设置动态变量(间接变量引用) 如何从输入文件设置shell变量?
你好, 我需要从shell脚本中的.ini文件设置动态变量 假设输入文件为input.ini: 在脚本中,我想将var1、var和var3分别设置为它们的val1、val2和val3以获得Bash UNIX脚本-设置动态变量(间接变量引用) 如何从输入文件设置shell变量?,bash,variables,unix,dynamic,Bash,Variables,Unix,Dynamic,你好, 我需要从shell脚本中的.ini文件设置动态变量 假设输入文件为input.ini: 在脚本中,我想将var1、var和var3分别设置为它们的val1、val2和val3以获得 echo $var1 val1 echo $var2 val2 ... 我试过: file="input.ini" while IFS== read -r f1 f2 do eval dynvar=$f1 dynvar=$f2 done <"$file
echo $var1
val1
echo $var2
val2
...
我试过:
file="input.ini"
while IFS== read -r f1 f2
do
eval dynvar=$f1
dynvar=$f2
done <"$file"
echo $var1
echo $var2
echo $var3
file=“input.ini”
而IFS==read-r f1 f2
做
eval dynvar=$f1
dynvar=$f2
完成
或
更多信息
<source | .> filename [arguments]
Execute commands from a file in the current shell.
文件名[参数]
从当前shell中的文件执行命令。
解决了的
使用:
file="install.ini"
while IFS== read -r f v
do
eval "$f=$v"
done <"$file"
file=“install.ini”
而IFS==read-rfv
做
评估“$f=$v”
谢谢你的回答,但我不明白你的意思。。。事实上,我在搜索网页后解决了这个问题(我从来没有写过这种代码)。请参阅下一个答案,如果可以使用前一个答案中所示的shell命令(如source
)来完成,为什么要手动执行?。。因为我不明白它是怎么工作的。。我读到它用于执行作为参数传递的文件,但我看不到它与我的问题之间的关系…从文件执行命令,在您的例子中是变量赋值
. input.ini
<source | .> filename [arguments]
Execute commands from a file in the current shell.
file="install.ini"
while IFS== read -r f v
do
eval "$f=$v"
done <"$file"