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