加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:35:37 所属栏目:安全 来源:网络整理
导读:我有一个包含这种字符串的变量: var='$FOO/bar/baz*' 我想用它的内容替换变量$FOO.但是,当我这样做的时候 var=$(eval "echo $var") 变量被替换,但是星号也被替换,因此var现在包含我的文件系统中的每个可能的匹配(就好像我按下了shell中的tab). 例如,如果$FO
我有一个包含这种字符串的变量:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读