bash的可选项
可选项(options)设置用来改变shell或者脚本的行为。
set指令可以使得在一个脚本里设置可选项。在脚本你需要设置可选项的地方,实用set -o option-name,或者采取缩写模式的set -option-abbrev。这两种形式效果等价。
比如
#!/bin/bash set -o verbose #Echoes all commands before executing #--------------------------- set -v #Exact same effect as above
如果想进制某一个可选项,使用+,而不是-符号:set +o option-name / set +option-abbrev
#!/bin/bash set -o verbose # Command echoing on. command ... command set +o verbose # Command echoing off. command # Not echoed. set -v # Command echoing on. command ... command set +v # Command echoing off. command exit 0
还有一种方法就是在指定shell解释器的同时设置可选项,就像下面这样:
#!/bin/bash -x # # Body of script follows.
当然,你可以在执行脚本的同时设定可选项,比如:
$ bash -v script-name $ bash -o verbose script-name
上面两条指令效果相同。
有关bash的可选参数及解释见下表
| 缩写 | 名字 | 效果 |
|---|---|---|
| -B | brace expansion | 可以括号展开(缺省为on) |
| +B | brace expansion | 不可以括号展开 |
| -C | noclobber | 防止通过重定向覆盖文件(>1可以覆盖此规则) |
| -D | (none) | 列出$开头的双引号引起来的字符串,但是不执行脚本里的命令 |
| -a | allexport | 导出所有已定义的变量 |
| -b | notify | 后台任务终止时给出提示(不大用在脚本里) |
| -c … | (none) | 从…读取命令 |
| -e | errexit | 当一个命令是非0状态退出时,脚本在第一个错误处中止(abort)(除until/while循环,if-tests,列表结构(命令链) |
| -f | noglob | 文件名展开(通配符)禁止 |
| -i | interactive | 交互模式运行脚本 |
| -n | noexec | 读脚本的指令,但是不执行(做语法检测) |
| -o option-name | (none) | 调用option-name参数 |
| -o posix | POSIX | 改变bash或者调用的脚本行为,使其符合POSIX标准 |
| -o pipefail | pipe failure | 管道里出现非零返回值时,使用用管道返回管道最后一个命令的推出状态 |
| -p | privileged | 脚本带suid位执行(注意!) |
| -r | restricted | 脚本运行在限制模式 |
| -s | stdin | 从stdin读命令 |
| -t | (none) | 第一个命令后退出 |
| -u | nounset | 使用未定义的变量时,输出错误消息,并强制退出 |
| -v | verbose | 执行指令前,将其打印到标准输出 |
| -x | xtrace | 和-v类似,但是展开命令 |
| - | (none) | 可选参数结束符。所有其他参数当做位置参数 |
| – | (none) | 取消位置参数设置,如果给出的参数( — arg1 arg2),位置参数设置为参数 |
原创文章,转载请注明: 转载自Linux|系统管理|WEB开发
本文链接地址: bash的可选项




近期评论