Lek*_*eyn 4 bash auto-completion
假设我是一个懒惰的混混,并希望避免把每串用引号将参数传递给函数时,我该如何避免字符*和?正在使用的bash为patname扩张呢?
简化示例:
fn () {
echo "$1"
}
# shopt -s option - disable * and ?
fn not/*/expanded
fn neither\ should\ this/be/expanded?
fn 'accepted too*'
# shopt -u option - enable * and ?
Run Code Online (Sandbox Code Playgroud)
这应该输出:
not/*/expanded
neither should this/be/expanded?
accepted too*
Run Code Online (Sandbox Code Playgroud)
您正在寻找的选项是noglob并且应该使用内置的 shell 进行设置set。
要启用它:
set -o noglob
Run Code Online (Sandbox Code Playgroud)
要禁用它:
set +o noglob
Run Code Online (Sandbox Code Playgroud)
或者也有set -f和set +f。
还有一种方法:
shopt -os noglob
Run Code Online (Sandbox Code Playgroud)
和
shopt -ou noglob
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4693 次 |
| 最近记录: |