shell编程之参数传递

执行shell脚本时,可以显式的向脚本传递参数,格式为 $n,n是数字,其中$0表示执行的文件名,其余的表示是第几个参数
#!/bin/bash
echo "shell编程之参数传递"
echo "执行的文件名称:$0"
echo "第一个参数:$1"
echo "第二个参数:$2"

chmod u+x test.sh
./test.sh a b
##输出结果##
shell编程之参数传递
执行的文件名称:./test
第一个参数:a
第二个参数:b

常见的特殊符号

参数
含义
$#
向脚本中传递的参数总个数
$$
运行此脚本所在的进程ID号
$*
以单字符串形式显示向脚本传递的所有参数
$@
功能与$*类似,但使用时要加引号,并返回每个参数
$?
显示命令的退出状态,0表示无错误,其他值表示有错误
使用示例:
#!/bin/bash
echo "shell编程之参数传递"
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "传递的参数总个数:$#"
echo "执行脚本的进程ID号:$$"

for i in "$*"; do
    echo $i
done

for j in "$@"; do
    echo $j
done

echo "命令退出状态:$?"

chmod u+x test.sh
./test.sh a b
###输出###
shell编程之参数传递
第一个参数:a
第二个参数:b
传递的参数总个数:2
执行脚本的进程ID号:15833
a b
a
b
命令退出状态:0
可以看到,$*输出的是单个字符串,$@输出的是每个参数

猜你喜欢

转载自blog.csdn.net/fanrenxiang/article/details/80315701