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
另外还有一些特殊字符用来处理参数
参数处理 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数.如"$*“用"括起来的情况、以”$1 2... 2... 2...n"的形式输出所有的参数 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程ID号 |
$@ | 作用同 ∗ , 不 同 的 是 在 使 用 " 括 起 来 时 , 在 引 号 中 返 回 每 个 参 数 . 如 " *,不同的是在使用"括起来时,在引号中返回每个参数.如" ∗,不同的是在使用"括起来时,在引号中返回每个参数.如"@“用"括起来,以”$1"" 2 " . . . " 2"..." 2"..."n"的形式输出所有参数. |
$- | 显示Shell使用的当前选项 |
$? | 显示最后命令的退出状态.0表示没有错误,其他任何值表示有错误 |
在Shell脚本传递参数时,如果包含空格, 应该使用单引号或者双引号将参数括起来,以便于脚本将这个参数作为整体来接收.