首页 > Linux技术 > bash的可选项

bash的可选项

2009年8月26日 wgzhao 发表评论 阅读评论

可选项(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的可选项

分类: Linux技术 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.