【问题标题】:Get value of variable that contains a variable [duplicate]获取包含变量的变量的值[重复]
【发布时间】:2022-01-20 23:22:46
【问题描述】:

我有一个变量$path,其值为"/home"

变量$path 存储在一个文本文件中,如下所示:

$path/programs

在我的脚本中,我从文本文件中获取该行并将其设置为变量$ful_path

问题:变量$full_path 没有得到$path 的值

echo $full_path

结果:

$path/programs

当我从命令行回显$path/programs 时,我确实得到/home/programs,它只是在脚本中作为变量被视为字符串。

【问题讨论】:

  • 如何包含脚本?文本文件的内容是什么?
  • 文本文件 $path/programs,注意 $path 是一个导出变量
  • 你在做类似source "filename"的事情吗?
  • 在脚本中,我将文件中的“程序”grep 到一个变量中。所以这行 $path/programs 变成了变量的值。
  • 您能否编辑您的问题以添加有关如何执行此操作的代码? (可以肯定的是,即使我很确定您可以使用 eval 来做到这一点,但那里的风险可能较小)。

标签: bash shell


【解决方案1】:

您可能正在做类似的事情:

export path=/home
echo '$path/programs' > test-file

full_path="$(cat test-file)"
echo "$full_path"

你可以用 envsubst 替换变量:

export path=/home
echo '$path/programs' > test-file

full_path="$(cat test-file | envsubst)"
echo "$full_path"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多