shell命令参数的含义

2021-06-06

关键字:shell参数系统变量


 

变量名 含义
$@ 此命令下所携带的所有参数。以空格隔开
$* 此命令下所携带的所有参数。以空格隔开
$# 此命令下所携带参数的数量。
$n n是0 ~ n 的数字,表示第几个参数。$0表示命令名本身。$1表示第一个参数,以此类推。
$_ 保存之前执行的命令的最后一个参数
$$ 获取当前进程的PID,即本shell命令的进程ID号。
$! 在后台运行的最后一个进程的PID。
$? 上一次命令的执行结果。0为执行成功,其它值表示执行失败。
   

 

以下是测试这些系统变量的源码:

#!/bin/sh

echo "\$@:$@"
echo "\$*:$*"
echo "\$#:$#"
echo "\$0:$0"
echo "\$1:$1"
echo "\$_:$_"
echo "\$$:$$"
echo "\$!:$!"
ls jkkk 2> /dev/null
echo "\$?:$?"

上述倒数第二行是人为构造一个命令执行出错的场景出来以测试 $? 变量的值。

 

以下是执行结果:

root@ubuntu:~# ./param.sh p1 p2
$@:p1 p2
$*:p1 p2
$#:2
$0:./param.sh
$1:p1
$_:./param.sh
$$:6644
$!:
$?:2

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章