有這個神器還怕寫什麼shell

有這個神器還怕寫什麼shell

作為一名系統工程師來說,在自動化大行其道的今天,編寫shell指令碼是必不可少的技能,但是在編輯過程中經常會遇到出現一些簡單的語法錯誤,執行時也並沒有發現,有些看似可以執行的shell指令碼,在某些場景下出現錯誤,導致應該執行的命令或任務無法完成,可能會造成比較大的損失。而有另外一些指令碼的寫法能正常執行,但是卻不符合POSIX標準,不具備可移植性。

雖然shell指令碼是解釋執行,不像開發語言那樣檢查嚴格,但是我們可以藉助一些工具幫助我們提前發現一些錯誤。

ShellCheck

shellcheck就是這樣的一個工具。它可以在多種場景下使用,包括線上,命令列檢查等,下面分別介紹。

線上使用

這個就很好理解啦,它提供了一個線上的檢查地址

https://www。shellcheck。net/

進入網址即可使用。

例如,你輸入你的指令碼內容:

有這個神器還怕寫什麼shell

它會給出錯誤提示或者建議:

有這個神器還怕寫什麼shell

怎麼樣,是不是很給力,每個可能的錯誤都提示了。新手寫shell出現莫名的報錯時,可以嘗試使用奧。當然例子中很多並不是真的錯誤,而是某種寫法不符合POSIX標準,這種情況也應該避免。

命令列使用

命令列安裝也很簡單(記得使用root許可權)

ubuntu下:

$ apt-get install shellcheck

centos下:

$ yum -y install epel-release

使用方法也很簡單:

$ shellcheck {myscript。sh}

舉個例子

下面的寫法是新手最容易出錯的地方之一:

有這個神器還怕寫什麼shell

看執行報錯:

有這個神器還怕寫什麼shell

只是告訴你在then附近有語法問題,

到底什麼問題呢?我們用shellcheck看看:

有這個神器還怕寫什麼shell

這麼一看,就很清楚了,原來[前面少了空格。

工欲善其事必先利其器,

有好的工具,自然就該用起來。

小編再給大家推薦一個運維神器:Ansible它是由Red Hat公司出品的一款自動化運維工具,能夠解決我們在IT工作中,一遍又一遍執行相同任務。利用它,我們可以只解決一次問題,然後自動化執行我們的解決方案。

磐林IT紅帽RHCE認證培訓詳細的對Ansible進行講解,想要學習的同學可以開啟連結

https://plIT。h5。360dhf。cn