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

前端之家收集整理的这篇文章主要介绍了如何在不扩展通配符的情况下扩展bash变量中的变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含这种字符串的变量:
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
原文链接:https://www.f2er.com/bash/383442.html

猜你在找的Bash相关文章