1. $0:脚本的名字
-
$0就是脚本的名称。比如你运行了一个叫test.sh的脚本,$0就是test.sh。
2. $1、$2、$3……:脚本的参数
-
当你运行脚本时,如果后面跟了参数,比如
./test.sh a b c,那么$1是a,$2是b,$3是c。
3. $#:参数的数量
-
$#是脚本接收到的参数个数。比如上面的例子中,$#就是3。
4. $*:所有参数的集合
-
$*是所有参数的值,作为一个整体。比如上面的例子中,$*就是a b c。
5. $?:上一条命令的返回值
-
$?是上一条命令执行后的结果状态。比如,如果命令成功,$?是0;如果失败,$?是一个非零值。
示例脚本
假设我们有一个脚本 test.sh,内容如下:
bash
复制
#!/bin/bash
# 打印脚本名称
echo "脚本名称是: $0"
# 打印参数数量
echo "参数数量是: $#"
# 打印第一个参数
echo "第一个参数是: $1"
# 打印第二个参数
echo "第二个参数是: $2"
# 打印所有参数
echo "所有参数是: $*"
运行脚本
运行脚本时,我们传入一些参数:
bash
复制
./test.sh hello world
输出结果
运行后,脚本会输出:
复制
脚本名称是: ./test.sh
参数数量是: 2
第一个参数是: hello
第二个参数是: world
所有参数是: hello world
再看 $?
假设我们运行一个命令并检查它的返回值:
bash
复制
ls /nonexistent_directory
echo "命令的返回值是: $?"
如果目录不存在,ls 会报错,$? 的值可能是 2(表示失败)。
总结
这些变量是用来处理脚本参数和命令返回值的:
-
$0是脚本的名字。 -
$1、$2是脚本的第1个、第2个参数。 -
$#是参数的数量。 -
$*是所有参数的值。 -
$?是上一条命令的返回值
7728

被折叠的 条评论
为什么被折叠?



