Shell 传递参数
在执行Shell脚本时, 向脚本传递参数,脚本内可以通过$n的格式获取参数.n代表一个数值,从0开始递增,除$0 表示执行文件名外,其他都表示执行文件时的参数,如: $1表示执行脚本的第一个参数,$2表示执行脚本的第二个参数,以此类推.
#!/bin/bash
echo "Shell 传递参数!"
echo "执行的文件名: $0";
echo "第一个参数为: $1";
echo "第二个参数为: $2";
echo "第三个参数为: $3";
执行脚本文件:
./test_t01.sh 1 2 3
输出结果:
Shell 传递参数!
执行的文件名: ./test_t01.sh
第一个参数: 1
第二个参数: 2
第三个参数: 3
另外还有一些特殊字符用来处理参数
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数.如"$*“用"括起来的情况、以”$12...2...2...n"的形式输出所有的参数 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程ID号 |
$@ | 作用同∗,不同的是在使用"括起来时,在引号中返回每个参数.如"*,不同的是在使用"括起来时,在引号中返回每个参数.如"∗,不同的是在使用"括起来时,在引号中返回每个参数.如"@“用"括起来,以”$1""2"..."2"..."2"..."n"的形式输出所有参数. |
$- | 显示Shell使用的当前选项 |
$? | 显示最后命令的退出状态.0表示没有错误,其他任何值表示有错误 |
在Shell脚本传递参数时,如果包含空格, 应该使用单引号或者双引号将参数括起来,以便于脚本将这个参数作为整体来接收.