shell指令碼程式設計中條件判斷語句中各個引數的含義

2021-06-25 13:20:26 字數 2452 閱讀 1999

linux下條件判斷語句的格式如下:(ps:這裡需要特別注意的是,條件與「[」與「]」之間有空格,if與"["之間也需要空格)。

if  [ condition1 ]

then

if [ condition2 ]

then

...else

...fi

command strings;

else

command strings;

fi

檔案的判斷的表示式:

if [ -parameter file ]

-r file     使用者可讀為真

-w file     使用者可寫為真

-x file     使用者可執行為真

-f file      檔案為正規檔案為真

-d file     檔案為目錄為真

-c file     檔案為字元特殊檔案為真

-b file     檔案為塊特殊檔案為真

-s file     檔案大小非0時為真

-t file     當檔案描述符(預設為1)指定的裝置為終端時為真

邏輯判斷的表示式為:

if [ $1 -parameter $2 ]

邏輯判斷引數含義:

-eq —比較兩個引數是否相等(例如,if [ 2 –eq 5 ])

-ne —比較兩個引數是否不相等

-lt —引數1是否小於引數2

-le —引數1是否小於等於引數2

-gt —引數1是否大於引數2

-ge —引數1是否大於等於引數2

下面舉例說明:

#!/bin/sh

time=`date -d yesterday +%y%m%d`

file="access_$time.log"

cd /data/nginx/logs

if [ -f "$file" ];then

echo "file ok"

else

echo "error $file" > error.log

mail -s "$file backup fail" [email protected]

shell要實現類似於c語言或者其他高階語言實現的算術運算,需要利用expr命令。下面以乙個指令碼說明:

#!/bin/bash

sum=0

for var

do if [ 'expr $var \>=0' =1 ]

then

echo -e "$var+\c"

sum='expr $sum + $var'

fidone

echo -e "\b=$sum"

這個指令碼實現的功能是,指令碼讀入引數,先判斷是否為數字,如果為數字則進行累加。

判斷檔案目錄存在的幾個語句:

# 這裡的-x 引數判斷$mypath是否存在並且是否具有可執行許可權

if [ ! -x "$mypath"]; then

mkdir "$mypath"

fi # 這裡的-d 引數判斷$mypath是否存在

if [ ! -d "$mypath"]; then

mkdir "$mypath"

fi # 這裡的-f引數判斷$myfile是否存在

if [ ! -f "$myfile" ]; then

touch "$myfile"

fi # 其他引數還有-n,-n是判斷乙個變數是否是否有值

if [ ! -n "$myvar" ]; then

echo "$myvar is empty"

exit 0

fi # 兩個變數判斷是否相等

if [ "$var1" = "$var2" ]; then

echo '$var1 eq $var2'

else

echo '$var1 not eq $var2'

fi判斷目錄是否為空:

dir="yourpath"

if [ -z "$dir"]

then

echo "empty!"

else

echo "file ok!"

fi

case語句判斷格式入下:

case $變數名 in

模式1)

命令序列1

;;模式2)

命令序列2

;; *)

預設執行的命令序列 ;;

esac

shell指令碼的條件判斷語句

條件判斷,顧名思義,就是對當前引數進行相關條件的比較,如果符合要求就進行相對應的操作,條件語句涉及到兩種語法,if和case,兩種語法都各具特色,我們可以通過例項來進行比較 if 判斷條件1 then 條件為真的分支 elif 判斷條件2 then 條件為真的分支 elif 判斷條件3 then 條...

shell指令碼程式設計之條件判斷

1 shell指令碼學習 2 比較兩個數字大小 2 linux 中清空或刪除大檔案內容的五種方法 3 shell 清空檔案內容 整數測試 字元測試 檔案測試1 expression 命令測試 2 expression 關鍵字測試 3 test expression eq 測試兩個整數是否相等 相等為...

Shell中的條件判斷語句if then fi

shell中的條件判斷語句是前面一篇 shell中的條件測試語句 的公升級篇,也就是說,前面的測試語句是為了現在的判斷語句if then fi語句服務的。我們還是按照注意點和 實現的方式鋪開 1 基本的if then fi語句可以用來判斷基本的單層的分支結構,其形式如下 其中if後面的測試語句一般都...