Shell入门(五)之参数
一、Shell 传递参数
在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,0为执行文件名,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推
比如: ./shellTest.sh 0 1 a b
$0 : ./shellTest.sh,即命令本身,相当于c/c++中的argv[0]
$1 : 0,第一个参数.
$2 : 1
$3, $4 ... :类推。
$# :参数的个数,不包括命令本身,上例中$#为4.
$@ :参数本身的列表,也不包括命令本身,如上例为0 1 a b
$* :和$@相同,但"$*" 和 "$@"(加引号)并不同。
"$*"将所有的参数解释成一个字符串,以"$1 $2 … $n"的形式输出所有参数;而"$@"是一个参数数组,以"$1" "$2" … "$n" 的形式输出所有参数。
$$:脚本运行的当前进程ID号
$!:后台运行的最后一个进程的ID号
$-:显示Shell使用的当前选项,与set命令功能相同。
$?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
二、实例
#!/bin/bash echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; echo "第四个参数为:$4"; echo "\$@为:"$@; echo "\$*为:"$*; echo "$@"; echo "$*"; echo "\$\$当前进程ID号为:$$"; echo "\$!最后一个进程的ID号为:$!"; echo "\$?退出状态为:$?";