shell指令碼之運算子(四)

來源:互聯網
上載者:User
運算子!/bin/bash#基本運算子val=`expr 2 + 2`echo "兩數之和為${val}"#算數運算子#*需要反斜線a=10b=20val=`expr ${a} + ${b}`echo "a + b = ${val}"val=`expr $a - $b`echo "a - b : $val"val=`expr $a \* $b`echo "a * b : $val"val=`expr $b / $a`echo "b / a : $val"val=`expr $b % $a`echo "b % a : $val"#關係運算子a=10b=20#運算子    說明  舉例#-eq    檢測兩個數是否相等,相等返回 true。    [ $a -eq $b ] 返回 false。#-ne    檢測兩個數是否相等,不相等返回 true。   [ $a -ne $b ] 返回 true。#-gt    檢測左邊的數是否大於右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。#-lt    檢測左邊的數是否小於右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。#-ge    檢測左邊的數是否大於等於右邊的,如果是,則返回 true。   [ $a -ge $b ] 返回 false。#-le    檢測左邊的數是否小於等於右邊的,如果是,則返回 true。   [ $a -le $b ] 返回 true。#if [ $a -eq $b ]then  echo "a 和 b 相等"else  echo "a 和 b 不相等"fi#布林運算子#運算子    說明  舉例#!  非運算,運算式為 true 則返回 false,否則返回 true。  [ ! false ] 返回 true。#-o 或運算,有一個運算式為 true 則返回 true。  [ $a -lt 20 -o $b -gt 100 ] 返回 true。#-a 與運算,兩個運算式都為 true 才返回 true。  [ $a -lt 20 -a $b -gt 100 ] 返回 false。if [ $a != $b ]then  echo "a 不等於 b"else  echo "a 等於 b"fiif [ $a > 0 -a $b > 0 ]then  echo "a 和 b 都 大於0 成立"else  echo "a 和 b 都 大於0 不成立"fi#邏輯運算子#運算子    說明  舉例#&& 邏輯的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false#|| 邏輯的 OR  [[ $a -lt 100 || $b -gt 100 ]] 返回 trueif [[ $a > 0 && $b > 0 ]]then echo "a>0 and b>0"else echo "a>0 and b>0 不成立"fi#字串運算子#運算子    說明  舉例# = 檢測兩個字串是否相等,相等返回 true。  [ $a = $b ] 返回 false。# !=    檢測兩個字串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。# -z    檢測字串長度是否為0,為0返回 true。  [ -z $a ] 返回 false。# -n    檢測字串長度是否為0,不為0返回 true。 [ -n $a ] 返回 true。# str   檢測字串是否為空白,不為空白返回 true。   [ $a ] 返回 true。a="abc"b="def"if [ $a = $b ]then  echo "a 和 b 相等"else  echo "a 和 b 不相等"fi#檔案測試運算子#操作符    說明  舉例# -b file   檢測檔案是否是塊裝置檔案,如果是,則返回 true。  [ -b $file ] 返回 false。# -c file   檢測檔案是否是字元裝置檔案,如果是,則返回 true。 [ -c $file ] 返回 false。# -d file   檢測檔案是否是目錄,如果是,則返回 true。 [ -d $file ] 返回 false。# -f file   檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。    [ -f $file ] 返回 true。# -g file   檢測檔案是否設定了 SGID 位,如果是,則返回 true。  [ -g $file ] 返回 false。# -k file   檢測檔案是否設定了粘著位(Sticky Bit),如果是,則返回 true。  [ -k $file ] 返回 false。# -p file   檢測檔案是否是有名管道,如果是,則返回 true。   [ -p $file ] 返回 false。# -u file   檢測檔案是否設定了 SUID 位,如果是,則返回 true。  [ -u $file ] 返回 false。# -r file   檢測檔案是否可讀,如果是,則返回 true。  [ -r $file ] 返回 true。# -w file   檢測檔案是否可寫,如果是,則返回 true。  [ -w $file ] 返回 true。# -x file   檢測檔案是否可執行,如果是,則返回 true。 [ -x $file ] 返回 true。# -s file   檢測檔案是否為空白(檔案大小是否大於0),不為空白返回 true。 [ -s $file ] 返回 true。# -e file   檢測檔案(包括目錄)是否存在,如果是,則返回 true。    [ -e $file ] 返回 true。#變數 file 表示檔案file="/User/a7890/Documents/shellTest/test1.sh"if [ -r $file]then  echo "test1.sh 檔案可讀"else  echo "test1.sh 檔案不可讀"fi
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.