在Bash中,似乎有几个变量持有特殊的、一致的含义值。例如,
./myprogram &; echo $!
将返回回溯到myprogram的进程的PID。我知道其他人,例如$?,我认为它是当前的TTY。还有其他的吗?
myprogram
$?
$_
$#
$*
$@
从我的头顶上掉下来。谷歌获取bash特殊变量。
$1
$2
$3
"$@"
{$1, $2, $3 ...}
"$*"
$1 $2 $3 ...
$-
$$
$IFS
$!
$0
以上大部分可以在Bash参考手册的特殊参数下找到。有所有的shell设置的环境变量。
有关综合索引,请参阅参考手册变量索引。
为了帮助理解$#、$0和$1、…、$n做了什么,我使用这个脚本:
$n
#!/bin/bash for ((i=0; i<=$#; i++)); doecho "parameter $i --> ${!i}"done
运行它会返回一个有代表性的输出:
$ ./myparams.sh "hello" "how are you" "i am fine"parameter 0 --> myparams.shparameter 1 --> helloparameter 2 --> how are youparameter 3 --> i am fine
注意一些示例;0美元可能包括一些前导路径以及程序名称。例如将这两行脚本保存为./mytry.sh并执行它。
#!/bin/bash echo "parameter 0 --> $0" ; exit 0
输出:
parameter 0 --> ./mytry.sh
这是当前(2016年)版本的Bash,通过Slackware 14.2