在执行shell脚本执行时,可以向脚本传递参数,脚本内用$1 $2 $3...
来获取参数,$1
代表传递的第一个参数,以此类推。
脚本如下
#!/bin/bash
echo "执行的文件名:$0"
echo "传递到脚本参数的个数: $#"
echo "当前脚本运行的ID号:$$"
echo "后台运行的最后一个进程的ID号:$!"
echo "第一个参数为:$1"
echo "第二个参数为:$2"
echo "第三个参数为:$3"
echo "以单个字符显示所有传递的参数:$*"
echo "显示所有参数:$@"
echo "显示上个命令的退出状态:$?"
执行结果如下
[root@localhost tmp]# sh test.sh 1 2 3
执行的文件名:test.sh
传递到脚本参数的个数: 3
当前脚本运行的ID号:2054
后台运行的最后一个进程的ID号:
第一个参数为:1
第二个参数为:2
第三个参数为:3
以单个字符显示所有传递的参数:1 2 3
显示所有参数:1 2 3
显示上个命令的退出状态:0
参数 | 含义 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
$*和$@的区别
相同点:都是引用所有参数
不同点:
$* = "1 2 3" $@ = "1" "2" "3"