上一章Linux
shell编程请查看:基本shell变量的定义和使用
【Linux shell编程(shell特殊变量完全介绍和使用教程)】在本章中我们将详细讨论Unix中的特殊变量。在前面的一章中我们了解了如何在变量名中使用某些非字母数字字符,这是因为这些字符用于特殊Unix变量的名称,这些变量是为特定的函数保留的。
例如echo $$中的$字符表示当前shell的进程ID号或PID,这个命令命令输出当前shell的PID。
下表显示了一些可以在shell脚本中使用的特殊变量:
编号 | 变量 & 描述 |
1 | $0 当前脚本的文件名。 |
2 | $n 这些变量与调用脚本的参数相对应。这里n是一个正的十进制数,对应于一个参数的位置(第一个参数是$1,第二个参数是$2,依此类推)。 |
3 | $# 提供给脚本的参数数量。 |
4 | $* 所有的参数都是双引号,如果脚本接收到两个参数$*就等于$1 $2。 |
5 | $@ 所有的参数都是单独双引号,如果脚本接收到两个参数$@就等于$1 $2。 |
6 | $? 最后执行的命令的退出状态。 |
7 | $$ 当前shell的进程号,对于shell脚本这是它们执行的进程ID。 |
8 | $! 最后一个后台命令的进程号。 |
#!/bin/shecho "文件名: $0"
echo "第一个参数 : $1"
echo "第二个参数 : $2"
echo "引用值: $@"
echo "引用值: $*"
echo "参数数量 : $#"
2、特殊参数$*和$@有一些特殊的参数允许一次访问所有的命令行参数,$*和$@的作用是一样的,除非用双引号””括起来。这两个参数都指定了命令行参数,但是“$*”特殊参数将整个列表作为一个参数并且中间有空格,而“$@”特殊参数将整个列表分隔成单独的参数。
我们可以编写如下所示的shell脚本,用$*或$@特殊参数处理未知数量的命令行参数:
#!/bin/shfor TOKEN in $*
do
echo $TOKEN
done
3、退出状态$?变量表示前一个命令的退出状态,退出状态是每个命令完成后返回的数值。通常大多数命令如果成功则返回0退出状态,如果不成功则返回1。
一些命令由于特定的原因返回额外的退出状态,例如一些命令可以区分不同类型的错误,并根据特定的故障类型返回不同的退出值。
推荐阅读
- Linux shell编程(shell数组定义和操作详解)
- Linux shell编程(基本shell变量的定义和使用介绍)
- Linux shell编程之(什么是shell(shell脚本介绍及其操作))
- Unix和Linux信号捕获处理介绍及其相关操作教程
- Unix和Linux系统日志介绍和详细操作教程
- 贝塞斯达戏弄“最大的发动机大修”,托德·霍华德(Todd Howard)变得非常糊涂
- 凯纳(Kena)幕后花絮(精神之桥的和谐合作)
- 赠品(复仇者联盟:无限战争蓝光[关闭])
- 刺客信条瓦尔哈拉的发售后计划包括免费(收费)其他内容