1

我有一个脚本。它需要参数,但我希望它在接收到字符串“ *”时自动完成到列表变量中的匹配字符串。

不幸的是,如果用户不使用反斜杠转义星号来转义通配符,这是不可能的:

foo.py ba\*  # Will expand to "bar"

不这样做会导致 bash 将其扩展为工作目录中的文件,然后将其传递给我的脚本。

告诉 bash 不要自动扩展星号并将其传递给我的脚本需要什么。也许是安装脚本?

4

2 回答 2

5
set -o noglob

将阻止 bash 扩展*.

删除set +o noglob

于 2013-04-04T13:33:16.093 回答
2

简单地这样称呼它以在 bash 中转义:

foo.py 'ba*'
于 2013-04-04T13:34:01.610 回答