Linux shell学习(4)shell传递参数

在执行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
原创文章 187 获赞 29 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43826242/article/details/104206601