当前位置: 技术问答>linux和unix
请问make -f aaa.mk $@最后的这个$@是什么意思啊
来源: 互联网 发布时间:2016-10-03
本文导语: 今天在一个shell脚本中看到一句make -f aaa.mk $@(aaa.mk是自己替换了变量) make -f aaa.mk $@最后的这个$@是什么意思啊?请问各位大侠! | $@ 表示传给shell脚本的所有参数 | $# ...
今天在一个shell脚本中看到一句make -f aaa.mk $@(aaa.mk是自己替换了变量)
make -f aaa.mk $@最后的这个$@是什么意思啊?请问各位大侠!
make -f aaa.mk $@最后的这个$@是什么意思啊?请问各位大侠!
|
$@
表示传给shell脚本的所有参数
表示传给shell脚本的所有参数
|
$#
命令行或者是位置参数的个数
$*
所有的位置参数,被作为一个单词.
注意:"$*"必须被""引用.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词.
$-
传递给脚本的falg(使用set 命令).参考Example 11-15.
注意:这起初是ksh 的特征,后来被引进到Bash 中,但不幸的是,在Bash 中它看上去也不
能可靠的工作.使用它的一个可能的方法就是让这个脚本进行自我测试(查看是否是交
互的).
$!
在后台运行的最后的工作的PID(进程ID).
$_
保存之前执行的命令的最后一个参数.
$?
命令,函数或者脚本本身的退出状态(见Example 23-7)
用于检查上一个命令,函数或者脚本执行是否正确。(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错。)
$$
脚本自身的进程ID.这个变量经常用来构造一个"unique"的临时文件名.
命令行或者是位置参数的个数
$*
所有的位置参数,被作为一个单词.
注意:"$*"必须被""引用.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的单词.
$-
传递给脚本的falg(使用set 命令).参考Example 11-15.
注意:这起初是ksh 的特征,后来被引进到Bash 中,但不幸的是,在Bash 中它看上去也不
能可靠的工作.使用它的一个可能的方法就是让这个脚本进行自我测试(查看是否是交
互的).
$!
在后台运行的最后的工作的PID(进程ID).
$_
保存之前执行的命令的最后一个参数.
$?
命令,函数或者脚本本身的退出状态(见Example 23-7)
用于检查上一个命令,函数或者脚本执行是否正确。(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错。)
$$
脚本自身的进程ID.这个变量经常用来构造一个"unique"的临时文件名.
|
不都跟你说了吗 $@就是传给脚本的所有参数
比如你这个shell脚本的命字是test.sh 如果这样执行
./test.sh 1 2 3
那么实际执行的时候$GNUMAKE -f $PROGDIR/build/core/build-local.mk $@这句就相当于
$GNUMAKE -f $PROGDIR/build/core/build-local.mk 1 2 3
比如你这个shell脚本的命字是test.sh 如果这样执行
./test.sh 1 2 3
那么实际执行的时候$GNUMAKE -f $PROGDIR/build/core/build-local.mk $@这句就相当于
$GNUMAKE -f $PROGDIR/build/core/build-local.mk 1 2 3