1. 程式人生 > >linux shell中 if else以及大於、小於、等於邏輯表示式介紹

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

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

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

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命令選項在執行某一檔案之前檢查它是否存在。

下面舉二個例子吧,以方便大家的理解。

1、判斷檔案是否存在

#!/bin/sh
# 判斷檔案是否存在
# link:www.jb51.net
# date:2013/2/27
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" [email protected] <error.log
fi
#!/bin/sh
# 清除相關檔案,並按時間段記錄日誌
# link:www.jb51.net
# date:2013/2/27
#
DIR=/data/img_cache
DAY=`date +"%Y-%m-%d %H:%M"`
NUM=`ls $DIR |wc -l`
DIRNAME=`ls $DIR| grep leveldb | head -n 1 | awk '{print $NF}'`
if [[ $NUM -gt 3 ]];then
  rm -rf $DIR/$DIRNAME
  echo "---------$DAY----($DIR)-----------------------" >> /tmp/img_cache.log
  echo "$DIRNAME Deleted successful" >> /tmp/img_cache.log
fi



相關推薦

linux shell if else以及大於小於等於邏輯表示式介紹

比如比較字串、判斷檔案是否存在及是否可讀等,通常用"[]"來表示條件測試。 注意:這裡的空格很重要。要確保方括號的空格。筆者就曾因為空格缺少或位置不對,而浪費好多寶貴的時間。 if ....; then .... elif ....; then .... else ...

linuxshell邏輯表示式if else以及大於小於等於

在linux中shell是常用的命令程式,在shell中又存在很多常見的邏輯判斷, 下面我們就來看看這些邏輯判斷的用法以及規範。 比如可以比較字串、判斷檔案是否存在及是否可讀等,通常用"[]"來表示條件測試。 注意這裡的空格很重要。要確保方括號的空格。 否則將會報錯。 if

[shell] if else以及大於小於等於邏輯表示式

大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字串、判斷檔案是否存在及是否可讀等,通常用"[]"來表示條件測試。注意這裡的空格很重要。要確保方括號的空格。 首先對if-else if- if的使用進行簡單說明,直接貼指令碼如下,if空格[空格"xx"空格=空格"

linuxshellif的“-e,-d,-f”的用法

符號鏈接 符號 字符串變量 -s 長度 目錄 != filename bsp 文件表達式-e filename 如果 filename存在,則為真-d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規文件,則為真-

linux shell if 條件判斷 -a 到 -z 的意思

[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FIL

velocity模板引擎foreachif else以及賦值語句

#foreach($!obj in $!tables)                                   &

linuxshellif的“-e,-d,-f”是什麼意思

檔案表示式 -e filename 如果 filename存在,則為真 -d filename 如果 filename為目錄,則為真  -f filename 如果 filename為常規檔案,則為真 -L filename 如果 filename為符號連結,則為真 -r

SHELLIF大於等於小於的表示方法

$# 表示提供到shell指令碼或者函式的引數總數; $1 表示第一個引數。 -ne 表示 不等於 另外: 整數比較 -eq 等於,如:if ["$a" -eq "$b" ] -ne 不等於,如:if ["$a" -ne "$b" ] -gt

linux:Shellexecsource和shell script的區別

exec和source都屬於bash內部命令(builtins commands),在bash下輸入man exec或man source可以檢視所有的內部命令資訊。 bash shell的命令分為兩類:外部命令和內部命令。外部命令是通過系統呼叫或獨立的程式實現的,如sed

linux shell 判斷檔案目錄是否存在

-e filename 如果 filename存在,則為真 -d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規檔案,則為真 -L

shellif條件字串數字比對,[[ ]]和[ ]區別

轉載地址:http://71241.blog.51cto.com/61241/1341137 學習shell的時候總是被shell裡的條件判斷方式搞得頭疼,經常不知道改 用[],[[]],(())還是test,let,今天重點說說它們的區別的使用時應該注意的地方.

shellif語句的格式以及使用

比較兩個字串是否相等的辦法是:     if [ "$test"x = "test"x ]; then     這裡的關鍵有幾點:     1 使用單個等號     2 注意到等號兩邊各有一個空格:這是unix shell的要求     3 注意到"$test"x最後的x,這是特意安排的,因為當$test為

shell ifelse 用法詳解

基本語法 shell的if語法和C語言等高階語言非常相似,唯一需要注意的地方就是shell的if語句對空格方面的要求比較嚴格(其實shell對所有語法的空格使用都比較嚴格),如果在需要空格的地方沒有打上空格,都會報錯。如if [ $1x == "ip"x ];then ec

Pytohn實現Linux shell的wc命令

python wc #!/usr/bin/python import sys import os from optparse import OptionParser def opt(): parser = OptionParser() parser.add_option("-c

[shell]shellif語句的使用

don 條件 如何 ood 字符串 pre 評分 string 另一個 轉自:http://lovelace.blog.51cto.com/1028430/1211353 bash中如何實現條件判斷?條件測試類型: 整數測試 字符測試 文件測試 一、條

linux shellif-------用if做判斷

exist word then ucc reserve 服務器 單機 mon true 一 簡介 1 字符串判斷 str1 = str2      當兩個串有相同內容、長度時為真 str1 != str2      當串str1和str2不等時為真 -n s

1.Linux Shell的變量

proc shell parameter 顯式 nbsp 位置 login shell中的 自己 1. Shell變量類型 Shell是一種動態類型語言(不使用顯式的數據聲明)和弱類型語言(變量的類型操作根據需求而不同)。Shell中的變量是不分類型的(都是字符串類型),但

關於C#if else的一些用法

報錯 int 一個 沒有 -1 如果 什麽 是我 就會 首先說下一下if 的代碼格式: if (條件){ 循環體 else if(條件){ 循環體 } else{ } } 代碼的運行順序

Pythonif-else的多種寫法

and 得到 寫法 基本語法 方式 最大值 默認值 als pytho a, b= 1, 2 將a和b兩個變量中的最大值賦值給c (1)常規寫法 if a>b: c = a else: c = b (2)表達式 c = a if a>b el

Linux Shell有三種引號的用法

containe ubunt ref highlight 處理 alt 返回 cin test Linux Shell中有三種引號,分別為雙引號(" ")、單引號(‘ ‘)以及反引號(` `)。 其中雙引號對字符串中出現的$、‘‘、`和\進行替換;單引號不進行替換,將字符串