天天看點

Shell腳本單行和多行注釋

Shell腳本單行和多行注釋

在老男孩老師出版了《跟老男孩學習Linux運維:Shell程式設計實戰》一書後,有很多讀者找到老男孩問,多行内容如何注釋,由于在書中沒有講解,這裡補充下,本文僅針對Bash Shell講解(CentOS和Red Hat預設Shell)。

這個單行注釋就很簡單,就是以#号開頭的行就是注釋,注意第一行除外(比較特殊)。

[root@web01 ~]# cat oldboy.sh

#!/bin/bash

#echo "I am oldboy"  #<==以#号開頭就是注釋。

Bash Shell中沒有多行注釋的直接用法,但是有很多用老男孩思想就可以實作的方法,最簡單的方法就是在多行前面加#号就可以了,哈哈,vim有功能支援給多行前面批量加#号,見書籍第16章vim的使用講解,這裡就不細說了。

#echo "I am oldboy"

echo "I am oldboy"

[root@web01 ~]# sh oldboy.sh

I am oldboy

這個方法,網上也有人講,但是無一例外,沒有一個給出原理來,看來太多人都不知其是以然啊,老男孩的讀者們還是很迷糊,看來隻好老男孩為大家解釋了。

其實冒号在Bash裡也是一個指令,表示啥都不做,<<是輸入重定向,兩個EOF(可用其它特殊成對字元替代)之間的内容通過<<追加給冒号(:),但是冒号對它們啥都不做,就相當于沒做任何處理和輸出,就相當于注釋了,和老男孩老師在教學中講的cat指令追加多行文本是一個原理,學習要學到位才好。

:<<EOF

EOF #<==頂格寫,和老男孩老師講的cat指令追加多行文本是一個原理。

還有一些類似的思想方法,這個注釋會多了無意義,推薦讀者記住這一個就好了。

類似思路很多,不過思路都是一個,是以不需要掌握了:例如:

法3:

[root@db03 scripts]# cat test1.sh 

cat >/dev/null <<EOF

EOF

法4:

[ 0 -eq 1 ] &&{

}

繼續閱讀