在本章中,我们将讨论Unix中的特殊变量,在上一章中,我们了解了变量名称中使用某些非字母数字字符时应注意的事项,这些变量保留用于特定功能。
如, $字符代表当前Shell的进程ID号或PID-
$echo $$
上面的命令写入当前Shell的PID-
29949
下表显示了一些可以在Shell脚本中使用的特殊变量-
Sr.No. | Variable & 描述 |
---|---|
1 |
$0 当前脚本的文件名。 |
2 |
$n 这些变量对应于调用脚本的参数。这里的 n 是与参数位置相对应的正十进制数(第一个参数为$1,第二个参数为$2,依此类推)。 |
3 |
$# 提供给脚本的参数数量。 |
4 |
$* 所有参数都用双引号引起来。如果脚本收到两个参数,则$*等效于$1 $2。 |
5 |
$@ 所有参数都单独用双引号引起来。如果脚本收到两个参数,则$@等效于$1 $2。 |
6 |
$? 最后执行的命令的退出状态。 |
7 |
$$ 当前shell的进程号。对于Shell脚本,这是它们执行时的进程ID。 |
8 |
$! 最后一个后台命令的进程号。 |
命令行参数
命令行参数$1,$2,$3,... $9是位置参数,$0指向实际的命令,shell脚本或函数,$1,$2,$3,... $9作为参数命令。
以下脚本使用与命令行相关的各种特殊变量-
#!/bin/sh echo "File Name: $0" echo "First Parameter : $1" echo "Second Parameter : $2" echo "Quoted Values: $@" echo "Quoted Values: $*" echo "Total Number of Parameters : $#"
这是上述脚本的Example运行-
$./test.sh Learnfk com File Name : ./test.sh First Parameter : Learnfk Second Parameter : com Quoted Values: Learnfk com Quoted Values: Learnfk com Total Number of Parameters : 2
特殊参数$*和$@
我们可以如下所示编写Shell脚本,以使用$*或$@特殊参数处理未知数量的命令行参数-
#!/bin/sh for TOKEN in $* do echo $TOKEN done
这是上述脚本的示例运行-
$./test.sh Learnfk com 2 Years Old Learnfk com 2 Years Old
注意-这里的 do ... done 是一种循环,将在后续教程中进行介绍。
退出状态
$? 变量表示上一个命令的退出状态。
退出状态是每个命令完成后返回的数值。通常,如果大多数命令成功,则返回退出状态;如果不成功,则返回1。
以下是成功命令的示例-
$./test.sh learnfk com File Name : ./test.sh First Parameter : learnfk Second Parameter : com Quoted Values: learnfk com Quoted Values: learnfk com Total Number of Parameters : 2 $echo $? 0 $
参考链接
https://www.learnfk.com/linux/linux-special-variables.html
标签:脚本,教程,Learnfk,无涯,echo,sh,参数,Linux,com From: https://blog.51cto.com/u_14033984/8570646