bash(set 命令)
查看帮助
set --help
查看已设置的flag
$ echo$-
himBHs
设置flag
set -flag
取消设置flag
set +flag
查看使用
-o
设置的 flag
$ set -o
allexportoff
braceexpandon
emacson
errexitoff
errtraceoff
functraceoff
hashallon
histexpandon
historyon
ignoreeofoff
interactive-commentson
keywordoff
monitoron
noclobberoff
noexecoff
nogloboff
nologoff
notifyoff
nounsetoff
onecmdoff
physicaloff
pipefailoff
posixoff
privilegedoff
verboseoff
vioff
xtraceoff
使用
-o
设置 flag
# 比如命令行历史,set -o 查看状态变为on
set -o history
使用
+o
取消设置 flag
# 比如命令行历史,set -o 查看状态变为off
set +o history
set -v 【bash(set 命令)】显示 shell 所读取的输入值,再显示输出
$ set -v
$ ls
ls
test1test2
$ echo 123
echo 123
123
set -x 开启脚本调试
以下会直接打印中间变量扩展后的值,不需要再另外打印
//test6 文件
#!/usr/bin/bash
set -x
a=$1
b=$2$ ./test6 q ewr er
+ ./test6 q ewr er
+ a=q
+ b=ewr
set -- 会先将原有的位置参数 unset(相当于置空)。
//文件 test5
#!/usr/bin/bash
set --
echo $0
echo $1
echo $2
echo $3$ ./test5 zz xx cc
./test5
//以下都是空行,说明不会读取原有位置参数
再之后如果
set --
之后有参数,依次赋值给位置参数 ${1}
、${2}
...//文件 test5
#!/usr/bin/bash
set -- qq ww
echo $0
echo $1
echo $2
echo $3$ ./test5
./test5
qq
ww
//这里是一个空行,${3}为空$ ./test5 zz xx cc
./test5
qq
ww
//这里是一个空行,说明${3}不会读取脚本原有位置参数
set - 如果
set -
之后没有参数,原位置参数保持不变,正常读取;-x
、-v
如果设置过的话,会被关闭。// 文件 test5
#!/usr/bin/bash
set -
echo $0
echo $1
echo $2
echo $3$ ./test5 zz xx cc
./test5
zz
xx
cc
如果
set -
之后有参数,原位置参数 unset(置空)。// 文件 test5
#!/usr/bin/bash
set - qq
echo $0
echo $1
echo $2
echo $3$ ./test5 zz xx cc
./test5
qq
参考
- Bash Reference Manual:https://www.gnu.org/software/...
推荐阅读
- Shell-Bash变量与运算符
- Swift中willSet和didSet的简述
- 你命令我爱你吧(原创)
- 常用git命令总结
- 误删/清空.bashrc文件/内容
- 用Go构建区块链——3.持久化和命令行
- 《读_Head_First_有感》_“命令模式”
- locate搜索
- Linux|Linux 服务器nginx相关命令
- linux笔记|linux 常用命令汇总(面向面试)