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 ] &&{
}