【问题标题】:UNIX Script - setting dynamic variables (indirect variable reference)UNIX 脚本 - 设置动态变量(间接变量引用)
【发布时间】:2014-07-06 19:39:36
【问题描述】:

如何从输入文件中设置 shell 变量?

你好,

我需要在 shell 脚本中从 .ini 文件中设置动态变量。

假设输入文件是input.ini

var1=val1
var2=val2
var3=val3

在一个脚本中,我想将 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
echo $var2
echo $var3

echo $varx 命令没有输出。我该如何解决?

提前致谢。

【问题讨论】:

    标签: bash variables unix dynamic


    【解决方案1】:
    source input.ini
    

    或者

    . input.ini
    

    更多信息

    文件名 [参数] 从当前 shell 中的文件执行命令。

    【讨论】:

    • 感谢您的回答,但我不明白您的意思......事实上我在搜索网络后解决了这个问题(我从未编写过这种代码)。查看下一个答案
    【解决方案2】:

    已解决

    使用:

    file="install.ini"
    while IFS== read -r f v
    do
      eval "$f=$v"   
    done <"$file"
    

    成功了。

    【讨论】:

    • 如上一个答案所示,如果可以使用诸如 source 之类的 shell 命令来完成,为什么要手动完成?
    • .. 因为我不明白它是如何工作的.. 我读到它用于执行作为参数传递的文件,但我看不出与我的问题的关系......
    • 从文件执行命令,在你的情况下是变量赋值
    猜你喜欢
    • 2014-06-03
    • 2023-03-03
    • 1970-01-01
    • 2019-07-13
    • 2019-01-29
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多