Shell编写规范总结——脚本开头

Shell编写规范总结——脚本开头

官网模板

#!/bin/bash

set -eo pipefail  
shopt -s nullglob

set解释

 脚本只要发生错误,就终止执行

set -e

示例

未加set

#!/bin/bash

foo
echo 1

// 执行结果:
// 1.sh:行3: foo: 未找到命令
// 1

添加之后

#!/bin/bash
set -e

foo
echo 1

// 执行结果:
// 1.sh:行4: foo: 未找到命令

但是这种情况遇到管道就不行了,他只认为管道后面的命令成功就行

#!/bin/bash
set -e

foo|echo 1
echo 1

// 执行结果:
// 1.sh:行4: foo: 未找到命令
// 1
// 1

使用pipfail方式

#!/bin/bash
set -eo pipefail 

foo|echo 1
echo 1

// 执行结果:
// 1
// 1.sh:行4: foo: 未找到命令

shopt解释

示例

[root@localhost tmp]# shopt nullglob
nullglob        off
[root@localhost tmp]# mkdir tmp
[root@localhost tmp]# cd tmp
[root@localhost tmp]# for i in *; do echo "file: $i"; done
file: * 【这里把通配符*作为字符输出了】
[root@localhost tmp]# shopt -s nullglob
[root@localhost tmp]# shopt nullglob
nullglob        on
[root@localhost tmp]# for i in *; do echo "file: $i"; done
【没有输出结果】

 

posted @ 2020-04-26 18:29  Wshile  阅读(1348)  评论(0)    收藏  举报