5月30日課筆記
20.5 shell腳本中的邏輯判斷
20.6 文件目錄屬性判斷
20.7 if特殊用法
20.8/20.9 case判斷linux
20.5 shell腳本中的邏輯判斷shell
在工做中,不用寫腳本,能夠寫一條命
能夠不用寫shell腳本,能夠用一條命令代替。ide
也能夠這樣寫,效果同樣3d
寫多條命令code
寫一個腳本blog
把命令放到腳本里,格式化一下。it
20.6 文件目錄屬性判斷class
判斷是否是一個文件變量
判斷文件是否是目錄bfc
判斷文件是否是目錄或文件?
判斷文件是否可讀
判斷文件是否可寫,
判斷的是當前用戶的權限。
判斷是否能夠執行
由於不可執行,因此沒有任何輸出,也沒有定義else
以上是文件和目錄經常使用的方法。
如下用的比較多的寫法
第3行等於第3行下面4行,&&的意思是當前面的命令執行成功後,纔會執行後面的命令。若是不想寫4行,能夠直接用上面的命令。
||的意思,前面的命令執行不成功過,才執行後面的命令。
判斷文件若是文件不存在
20.7 if特殊用法
n=wc -l /tmp/lalal
是列出/tmp/lalal的行數,若是/tmp/lalal不當心被刪了,的值是空,就會出現問題。
若是腳本出現問題,那麼會影響到整個項目。爲了使腳本更嚴謹。
若是爲空的寫法
簡化,加上exit,寫爲以下:
上個腳本是邏輯錯誤,產生了一個空的值,而後去比較。下面腳本只是一個命令有錯,不是腳本有錯。
if[-z「$n"]和if[-n"$n"]比較特殊,有一個必須加一個雙引號,才能生效。爲了避免搞混,在使用-z和-n的時候,都加「」
能夠寫得更嚴謹。! - f /tmp/lalal 是指不文件存在。
判斷文件不爲空,不用加雙引號。
判斷變量不爲空,要加雙引號
grep -w 能夠精準過濾,grep -wq能夠過濾出來,可是不輸出。
grepuseradd user1 不會生效,因此不會輸出。
20.8case判斷(上)
20.9 case判斷(下)