0

我有一个 bash 函数,如下所示:

foo() {
    echo $1
}

或者

bar() {
    baz $1
}

如果我再调用foo 'file[1-3]'结果是file1 file2 file3,不是file[1-3]。将参数传递给另一个 bash 函数的调用时会发生类似的现象,例如在 function 中bar。除了确保当前目录中没有匹配的文件以便我可以在回显或将参数传递给另一个函数时引用参数之外,最简单的方法是什么?

编辑:字符串匹配似乎并没有扩展全局。在对另一个函数的内部调用中执行字符串匹配时,我的具体问题就显现出来了。似乎扩展了模式的是对另一个函数的调用。

4

2 回答 2

2

将其插入脚本的顶部:

set -o noglob
于 2012-10-25T23:07:22.213 回答
1

只需将 $1 括在双引号中,即

echo "$1"

因为在双引号内不会发生通配符/文件名扩展。

于 2012-10-25T23:18:07.227 回答