在执行shell文件的时候可以向文件传递执行的参数
使用$n(n是从1开始的数字)来表示传入的参数变量
#!/bin/bash
echo $1
echo $2
echo $3
bash 1.sh para1 para2 para3
para1
para2
para3
处理参数的特殊控制符:
符号 | 用途 |
---|---|
$# | 代表参数的个数 |
$* | 以一个字符串输出传递的参数 |
$$ | 脚本当前进程的ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 以一个字符串输出传递的参数 |
$? | 显示上一条命令的执行状态,成功的结果是0 |
- $*、"$*"、$@、"$@"
$*、$@、"$@" 的用法相同:以多个字符串的形式输出传入的参数
例如传入参数为:para1 para2 para3
输出:"para1" "para2" "para3"
"$*" 的用法:以单个字符串的形式输出传入的参数
例如传入参数为:para1 para2 para3
输出:"para1 para2 para3"
通过以下脚本的输出结果可以对比出来上面的结论:
#!/bin/bash
echo -e "\$*:"
for a in $*; do
echo $a
done
echo -e "\n\"\$*\":"
for i in "$*"; do
echo $i
done
echo -e "\n\$@:"
for b in $@; do
echo $b
done
echo -e "\n\"\$@\":"
for j in "$@"; do
echo $j
done
输出:
./4.sh para1 para2 para3
$*:
para1
para2
para3
"$*":
para1 para2 para3
$@:
para1
para2
para3
"$@":
para1
para2
para3