1. 程式人生 > >linux5月30課筆記

linux5月30課筆記

linux 筆記

5月30日課筆記
20.5 shell腳本中的邏輯判斷
20.6 文件目錄屬性判斷
20.7 if特殊用法
20.8/20.9 case判斷

20.5 shell腳本中的邏輯判斷

技術分享圖片

在工作中,不用寫腳本,可以寫一條命
可以不用寫shell腳本,可以用一條命令代替。
技術分享圖片

也可以這樣寫,效果一樣
技術分享圖片

寫多條命令
技術分享圖片

寫一個腳本
技術分享圖片

把命令放到腳本裏,格式化一下。
技術分享圖片

技術分享圖片

技術分享圖片

20.6 文件目錄屬性判斷
技術分享圖片
技術分享圖片

判斷是不是一個文件
技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

判斷文件是不是目錄
技術分享圖片

技術分享圖片
判斷文件是不是目錄或文件?
技術分享圖片

技術分享圖片

技術分享圖片

判斷文件是否可讀
技術分享圖片

技術分享圖片

判斷文件是否可寫,
技術分享圖片

技術分享圖片
判斷的是當前用戶的權限。

判斷是否可以執行
技術分享圖片

因為不可執行,所以沒有任何輸出,也沒有定義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判斷(下)

linux5月30課筆記