学习 shell —— 参数的解析:$0/1/2、$#、 $@、$?(set -e)
2016-05-29 22:05
726 查看
常遇到在 shell 脚本的开始使用
linux中的set命令: “set -e” 与 “set -o pipefail”
$#:# 一般表示个数,等同于 argc
$@:全部参数,等同于 argv
$0:当前脚本名,等同于 argv[0]
$1:argv[1]
$2:argv[2]
…
${10}:参数 > 9 必须包括在大括号内;
dirname:去除最后一层文件信息;
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
相关文章推荐
- Linux Shell角本中的条件判断
- shell(十一)切割文件
- Linux Shell 文本处理工具
- 连载shell(一): 交互式脚本,随日期变化,数值运算
- Shell编程中Shift的用法
- shell脚本的使用---cut截取数据
- 终极Shell---zsh
- linux shell中if的用法
- linux shell数组
- shell 解析 json
- 命令行shell 用于SQLite
- shell的比较运算符
- shell命令-dpkg
- 360浏览器无法打开Internet选项
- python shell 运行.py文件
- bash: .... command not found... 命令无效
- Shell-WEB目录监控
- Shell防DDOS攻击原理
- 命令man的用法
- Shell脚本调试技巧