Shell内部变量是
Linux提供的一种特殊类型的变量,这种变量在程序中做出判断,在shell程序内这些变量的值是不能被改变的。
变量 | 解释 |
|---|---|
$0 | 脚本自身名字 |
$# | 位置参数总数 |
$? | 上一条是否执行成功0为成功,非0不成功 |
$! | 上一条后台运行进程的PID |
$$ | 当前进程PID |
$* | 所有位置的参数看成一个字符串 |
$@ | 每个位置参数被看成单独的字符串 |
$1~$n | 位置参数:$1是第1参数、$2是第2参数 |
案例:
> vim sh1.sh
#!/bin/bash
echo "位置参数总数:$#"
echo "所有的参数:$*"
echo "所有的参数:$@"
echo "第一个位置参数:$1"
echo "第二个位置参数:$2"
shift
echo "第三个位置参数:$3"
echo "上一步执行是否成功:$?"
echo "上一条后台运行进程的PID:$!"执行:
> bash sh1.sh aa bb cc
位置参数总数:3
所有的参数:aa bb cc
所有的参数:aa bb cc
第一个位置参数:aa
第二个位置参数:bb
第三个位置参数:
上一步执行是否成功:0
上一条后台运行进程的PID:注意
第三个位置参数没有输出,原因是每执行一次 shift 命令,位置变量个数就会减一,而变量值则提前一位。shift n,可设置向前移动 n 位。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。