[toc]
shell特殊位置环境变量
变量 | 含义 |
---|---|
$0 | 脚本名称 |
$n | 位置变量,n代表数字,超过10要用括起来 |
$# | 参数个数 |
$*、$@ | 列出参数 |
$? | 上一个命令的执行结果返回值 |
$() | 表示先执行里边的内容 |
$ | "金庸新著" 和 "金庸新"著 用于区分变量 |
$! | 获取上一个脚本的PID |
$_ | 获取上一个脚本的最后一个参数 |
$- | 显示shell使用的当前选项,与set命令功能相同 |
$0 当前脚本的文件名,如果执行脚本包含了路径,那么就包括脚本路径
#编辑脚本内容
$ cat >a.sh <<'EOF'
#!/usr/bin/env bash
echo "当前脚本名为:$0"
EOF
#执行脚本
$ sh a.sh
当前脚本名为:a.sh
#执行路径+脚本名
$ sh /root/a.sh
当前脚本名为:/root/a.sh
$n 位置变量,获取当前执行的脚本的第n个参数,n=1..9,如果n大于9,用大括号括起来$10
#编辑脚本内容
$ cat > b.sh <<'EOF'
#!/usr/bin/env bash
echo "脚本的第1个参数为:$1"
echo "脚本的第10个参数为:${10}"
EOF
#执行脚本
$ sh b.sh 10 9 8 7 6 5 4 3 2 1
脚本的第1个参数为:10
脚本的第10个参数为:1