gpt4 book ai didi

bash - 如何在不扩展通配符的情况下扩展 bash 变量中的变量?

转载 作者:行者123 更新时间:2023-11-29 08:57:20 24 4
gpt4 key购买 nike

我有一个包含这种字符串的变量:

var='$FOO/bar/baz*'

我想用它的内容替换变量 $FOO。然而,当我这样做的时候

var=$(eval "echo $var")

变量被替换,但星号也被替换,因此 var 现在包含我的文件系统中的所有可能匹配项(就像我在 shell 中按了 tab 键一样)。例如,如果 $FOO 包含/home,var 将包含 "/home/bar/baz1.sh/home/bar/baz2.sh/home/bar/baz.conf"

如何在不扩展通配符的情况下替换变量?

最佳答案

在 bash 中关闭 globbing,然后重新启用它。

set -f 
var="$FOO/bar/baz*"
set +f

关于bash - 如何在不扩展通配符的情况下扩展 bash 变量中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767979/

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