您的位置:首页 > 运维架构 > Shell

学习 shell —— 参数的解析:$0/1/2、$#、 $@、$?(set -e)

2016-05-29 22:05 726 查看
常遇到在 shell 脚本的开始使用
set
命令的情况。

0. set -e

-e 参数,通过
help set
,给出的说明:Exit immediately if a simple command exits with a non-zero status.(当一个 command 命令返回值为 0 时,命令执行成功,非零表示失败)。在”set -e”之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出。(通过 $? 查看命令的返回状态)

linux中的set命令: “set -e” 与 “set -o pipefail”

1. $0/1/2

$0/1/2、$#、$@ 本质上是解析执行脚本时传递进来的参数。就好比 C 语言中的:

int main(int argc, char* argv[]){
...
}


$#:# 一般表示个数,等同于 argc

$@:全部参数,等同于 argv

$0:当前脚本名,等同于 argv[0]

$1:argv[1]

$2:argv[2]



${10}:参数 > 9 必须包括在大括号内;

2. $?

$?:exit status variable,$? 记录着一个命令(或者函数、脚本等)的退出状态;

SUCCESS=0
if [$? -eq $SUCCESS]
then
echo "$1 can be installed"
else
echo "$1 cannot be installed"
fi


3. basename/dirname

basename:去除(strip)路径信息;

dirname:去除最后一层文件信息;

dirname /usr/bin/ -> /usr
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: