$@
作为 bash 脚本函数参数是什么意思?
例子:
function foo()
{
echo "$@" 1>&2;
}
Run Code Online (Sandbox Code Playgroud)
小智 26
该$@
变量扩展为调用函数时使用的所有参数,因此
function foo()
{
echo "$@"
}
foo 1 2 3
Run Code Online (Sandbox Code Playgroud)
会显示1 2 3
. 如果不在函数内部使用,则指定调用脚本时使用的所有参数。有关更多信息,请参阅bash 手册页。
rou*_*ble 16
$@ 是 bash 中的两个“位置参数”表示之一,另一个是 $*。
$@ 和 $* 都是内部 bash 变量,表示传递给函数或脚本的所有参数,有一个关键区别,$@ 将每个参数作为单独的带引号的字符串,而 $* 将所有参数作为单个字符串。下面的代码显示了这种差异:
foo() {
while [ "$1" != "" ]; do
echo $1
shift
done
}
dollar_at () {
foo "$@"
}
dollar_star () {
foo "$*"
}
echo "Using \$@"
dollar_at a b c
echo "Using \$*"
dollar_star a b c
Run Code Online (Sandbox Code Playgroud)
输出:
Using $@
a
b
c
Using $*
a b c
Run Code Online (Sandbox Code Playgroud)
注意,当用 $* 调用时,只有一个参数被传递给 foo(),但使用 $@ 三个参数被传递给 foo()。
更多信息:http : //tldp.org/LDP/abs/html/internalvariables.html#APPREF
归档时间: |
|
查看次数: |
33252 次 |
最近记录: |