linux shell中 if else以及大于、小于、等于邏輯表達式介紹

4年以前  |  閱讀數:1556 次  |  編程語言:Shell   |    

比如比較字符串、判斷文件是否存在及是否可讀等,通常用"[]"來表示條件測試。

注意:這里的空格很重要。要確保方括號的空格。筆者就曾因為空格缺少或位置不對,而浪費好多寶貴的時間。

if ....; then
....
elif ....; then
....
else
....
fi

以下是一些常用的方法:

[ -f "somefile" ] :判斷是否是一個文件 [ -x "/bin/ls" ] :判斷/bin/ls是否存在并有可執行權限 [ -n "$var" ] :判斷$var變量是否有值 [ "$a" = "$b" ] :判斷$a和$b是否相等 -r file     用戶可讀為真 -w file     用戶可寫為真 -x file     用戶可執行為真 -f file     文件為正規文件為真 -d file     文件為目錄為真 -c file     文件為字符特殊文件為真 -b file     文件為塊特殊文件為真 -s file     文件大小非0時為真 -t file     當文件描述符(默認為1)指定的設備為終端時為真 含條件選擇的shell腳本

對于不含變量的任務簡單shell腳本一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell腳本編程支持此類運算,包括比較運算、判斷文件是否存在等。 基本的if條件命令選項有: - eq —比較兩個參數是否相等(例如,if [ 2 –eq 5 ]) -ne —比較兩個參數是否不相等 -lt —參數1是否小于參數2 -le —參數1是否小于等于參數2 -gt —參數1是否大于參數2 -ge —參數1是否大于等于參數2 -f — 檢查某文件是否存在(例如,if [ -f "filename" ]) -d — 檢查目錄是否存在

幾乎所有的判斷都可以用這些比較運算符實現。腳本中常用-f命令選項在執行某一文件之前檢查它是否存在。 下面以判斷文件是否存在舉個例子,以方便大家的理解。

#!/bin/sh
# 判斷文件是否存在

YACCESS=`date -d yesterday +%Y%m%d`
FILE="access_$YACCESS.log.tgz"
cd /data/nginx/logs
if [ -f "$FILE" ];then
    echo "OK"
else
    echo "error $FILE" > error.log
    mail -s "$FILE backup fail" test123@jb51.net <error.log
fi
 相關文章:
SSH 登錄失?。篐ost key verification failed
將二進制數據轉為16進制以便顯示
PHP分頁顯示制作詳細講解
獲取IMSI
獲取IMEI
Java生成UUID
PHP自定義函數獲取搜索引擎來源關鍵字的方法
在Zeus Web Server中安裝PHP語言支持
指定應用ID以獲取對應的應用名稱
讓你成為最歷害的git提交人
再談PHP中單雙引號的區別詳解
Python 2與Python 3版本和編碼的對比
PHP實現簡單爬蟲的方法
php+ajax+json 詳解及實例代碼
wget使用技巧
php封裝的page分頁類完整實例
php數組合并array_merge()函數使用注意事項
php實現數組中索引關聯數據轉換成json對象的方法
桌面中心(一)創建數據庫
Yii2漢字轉拼音類的實例代碼
18禁止午夜福利体验区,人与动人物xxxx毛片人与狍,色男人窝网站聚色窝,女生把筷子放屁眼里,国产精品久久久,国产日产欧洲无码视频