什么是特殊的美元符号shell变量?
在Bash中,似乎有几个变量持有特殊的,一致的含义值。 例如,
./myprogram &; echo $!
将返回后台myprogram
进程的PID。 我知道其他人,如$?
我认为这是目前的TTY。 有其他人吗?
$1
, $2
, $3
,...是位置参数。 "$@"
是所有位置参数{$1, $2, $3 ...}
的数组结构。 "$*"
是所有位置参数的IFS扩展, $1 $2 $3 ...
$#
是位置参数的数量。 $-
为shell设置的当前选项。 $$
pid。 $_
最新参数(或启动后立即启动当前shell的命令的abs路径)。 $IFS
是(输入)字段分隔符。 $?
是最近的前台管道退出状态。 $!
是最近的背景命令的PID。 $0
是shell或shell脚本的名称。 上述大部分内容可以在Bash参考手册中的特殊参数下找到。 有所有由shell设置的环境变量。
有关综合指数,请参阅参考手册变量索引。
$_
最后一个命令的最后一个参数 $#
传递给当前脚本的参数数量 $*
/ $@
作为字符串/分隔列表传递给脚本的参数列表 离开我的头顶。 谷歌为bash特殊变量。
为了帮助理解$#
, $0
和$1
,..., $n
做什么,我使用这个脚本:
#!/bin/bash
for ((i=0; i<=$#; i++)); do
echo "parameter $i --> ${!i}"
done
运行它将返回一个代表性输出:
$ ./myparams.sh "hello" "how are you" "i am fine"
parameter 0 --> myparams.sh
parameter 1 --> hello
parameter 2 --> how are you
parameter 3 --> i am fine
链接地址: http://www.djcxy.com/p/25703.html