【Linux】shell 脚本中$$、$#、$?、$1等分别代表什么意思?

本文深入探讨了Shell脚本中特殊变量的功能与使用方法,包括当前脚本名称、参数值、参数数量、进程ID等,解析了这些变量如何在脚本中发挥作用,以及如何通过它们进行条件判断和错误处理。

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

  • $0 当前脚本的执行名字
  • $n 当前脚本执行命令的第n个参数值,n = 1..9
  • $* 当前脚本执行命令的所有参数,此选项参数可超过9个
  • $# 当前脚本执行命令的输入参数个数,例如执行 ./test.sh aa bb cc ,则在 test.sh 里 $# 为 3
  • $$ 当前shell的PID(即脚本运行的当前进程号)
  • $! 上一个执行指令的PID(后台运行的最后一个进程的进程ID号)
  • $- 显示shell使用的当前选项,与set命令功能相同
  • $@ 跟$*类似,但是可以当作数组用
  • $? 上一个执行指令的返回值(显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误),如下所示
# 结果输出上一条命令 grep 命令的返回值
grep xxx a.txt
echo $?

# 判断打开目录命令是否成功,不成功则输出提醒信息并退出
dir_exe=../cron
cd $dir_exe
if [ $? -ne 0 ]; then 
    echo "cannot change dir to $dir_exe"
    exit 1  
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值