是否可以在 bash 脚本中使用“@”符号作为函数名?以下不起作用:
function @() {
echo hello
}
Run Code Online (Sandbox Code Playgroud)
编辑2:虽然@
在vanilla bash中没有问题,但当设置了extglob shell选项echo @()
时,它被用作模式分组运算符,一个简单的方法可以在某些条件下挂起你的shell。更有理由不使用@
作为标识符`。
编辑 1:澄清一下,根据标识符的定义不允许这样做。我不推荐它。我只是说为了向后兼容,可以在bash 中用作@
标识符。
@() { echo "$1 world"; }
@ hello
alias @="echo hello"
@ world
Run Code Online (Sandbox Code Playgroud)
@
用作特殊参数 ( $@
) 和数组 ( ${arr[@]}
),但不用于其他地方。Bash 不会阻止您将它用于别名和函数等标识符,但不会阻止变量名。
有些人使用别名@
为sudo
,因此他们可以执行命令为@ apt-get install
。
@
我不使用shell 标识符的主要原因是我已经习惯了Makefile 中的语义@
,它可以使命令静音而不会产生任何副作用。
顺便说一句:在 zsh 中的工作原理相同。
归档时间: |
|
查看次数: |
779 次 |
最近记录: |