shell编程连载【4】- 特殊参数

本文详细介绍了Shell命令中的特殊变量使用,包括PID编号、退出状态、文件操作错误码、信号状态、命令参数数量及名称,以及命令行参数的表示方式。通过实例展示了$#, $0, $1~$n, $*, 和 $@ 的具体应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 $$:显示PID编号

[tandesir@localhost shell]$ echo $ 8068


2 $?:退出状态

[tandesir@localhost shell]$ echo $? 0 [tandesir@localhost shell]$ ls test.txt ls: 无法访问 test.txt: 没有那个文件或目录 [tandesir@localhost shell]$ echo $? 2 [tandesir@localhost ~]$ true [tandesir@localhost ~]$ echo $? 0 [tandesir@localhost ~]$ false [tandesir@localhost ~]$ echo $? 1

【链接】如何查看信号状态?

使用kill -l命令:

[tandesir@localhost ~]$ kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX



3 $#:显示命令参数的个数

[tandesir@localhost shell]$ vi para_test.sh

#! /bin/bash echo "This script was called with $# arguments."

[tandesir@localhost shell]$ sh para_test.sh a1 a2
This script was called with 2 arguments.

4 $0:主调程序的名称

[tandesir@localhost shell]$ vi para_test.sh

#! /bin/bash echo "This command used to run this script is $(basename $0)."

[tandesir@localhost shell]$ sh para_test.sh
This command used to run this script is para_test.sh.

5 $1~$n:命令行参数

[tandesir@localhost shell]$ vi para_test.sh

#! /bin/bash i=0; echo "arg : $1 $2" echo "arg(all) : ${*}"

[tandesir@localhost shell]$ sh para_test.sh a b c
arg : a b
arg(all) : a b c

6 $*和$@:表示所有命令行参数

[tandesir@localhost shell]$ vi para_test.sh

#! /bin/bash set "$*" echo $# parameters with '"$*"' echo 1:$1 echo 2:$2 echo 3:$3

[tandesir@localhost shell]$ sh para_test.sh a b c

1 parameters with "$*"
1:a b c
2:
3:

[tandesir@localhost shell]$ vi para_test.sh

#! /bin/bash set "$@" echo $# parameters with '"$@"' echo 1:$1 echo 2:$2 echo 3:$3

[tandesir@localhost shell]$ sh para_test.sh a b c

3 parameters with "$@"
1:a
2:b
3:c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值