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
【没有输出结果】

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM