gpt4 book ai didi

Linux 脚本 : Reinterpret environment variable

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:33 25 4
gpt4 key购买 nike

我正在创建一个读取其他一些环境变量的 Bash 脚本:

echo "Exporting configuration variables..."
while IFS="=" read -r k v; do
key=$k
value=$v

if [[ ${#key} > 0 && ${#value} > 0 ]]; then
export $key=$value
fi
done < $HOME/myfile

并有变量:

$a=$b/c/d/e

并想像这样调用$a:

cp myOtherFile $a

复制的目标文件夹的结果是“$b/c/d/e”,并显示错误:

"$b/c/d/e" : No such file or directory

因为它按字面解释为文件夹路径。

cp 命令中使用之前是否可以重新解释此路径?

最佳答案

您需要eval 来执行此操作:

$ var=foo
$ x=var
$ eval $x=another_value
$ echo $var
another_value

在使用 eval 之前,我向您推荐此文档:http://mywiki.wooledge.org/BashFAQ/048

更安全的方法是使用declare而不是eval:

declare "$x=another_value"

感谢 chepner 2 提供最新信息。

关于Linux 脚本 : Reinterpret environment variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com