每日Linux学习:Shell脚本中的内置变量($0,$1~$9,$?,$*,$@等)

Linux Shell 脚本编程中的内置变量是预定义的全局变量,用于快速获取脚本运行时的关键信息,如参数、进程状态和上下文环境。常见变量包括:

1、$0(脚本名)、$1~$9(位置参数)、$#(参数个数),用于处理输入;

2、$?(上条命令状态码)、$(当前 PID)、$!(后台进程 PID),用于流程控制与进程管理;

3、$@ 和 $*(参数列表),需注意引号差异以避免空格问题。

这些变量在参数校验、错误处理、临时文件命名等场景中必不可少,掌握它们能提升脚本的健壮性和灵活性。

使用注意事项

1、所有内置变量均为只读,不可赋值(如 $?=0 会报错)。

2、引号的重要性,正确处理带空格的参数,总是用双引号包裹 "$@"。

3、超过 9 个参数需用 ${10} 而非 $10(避免被解析为 $1 + 0)。


典型应用场景示例

脚本:deploy.sh,检查参数

env=$1

version=$2

if [ $# -ge 2 ]; then

echo "用法: $0 <环境> <版本号>"

exit 0

fi


原文链接:,转发请注明来源!