[Linux] - Shell 特殊变量

特殊变量

Shell 中存在一些特殊的变量,可以用来获取脚本执行时的某些状态或者参数。

例如,存在一个 test.sh 脚本文件,我们知道执行脚本的命令为 ./test.sh,如果我们希望给这个脚本传递一个参数,让它输出这个参数,应该怎么做呢?

示例:

# 传递了 "hello world!" 作为参数
./test "hello world!"

这个时候可以使用 Shell 的特殊变量 $1

示例,编辑 test.sh,输入如下内容:

#!/bin/bash
echo $1

保存后返回控制台,输入 ./test "hello world!",可以发现控制台打印出了 "hello world!"

实际上,在 Shell 中存在以美元符 $ 开头的一些特殊变量,所有的特殊变量如下所示:

$0	当前脚本的文件名
$n	传递给脚本或函数的参数。n 是一个大于 0 的整数,表示第几个参数。
$#	传递给脚本或函数的参数个数。
$*	传递给脚本或函数的所有参数。
$@	传递给脚本或函数的所有参数。
$?	上个命令的退出状态,或函数的返回值。
$$	当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

讨论

还没有人评论~