欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell基本運算符的實現(xiàn)

 更新時間:2023年05月09日 09:14:12   作者:向陽逐夢  
Shell支持多種運算符,主要包括算數(shù)運算符,關(guān)系運算符,布爾運算符,字符串運算符,文件測試運算符,下面我們就介紹一下這些運算符的用法

Shell 和其他編程語言一樣,支持多種運算符,包括:

  • 算數(shù)運算符
  • 關(guān)系運算符
  • 布爾運算符
  • 字符串運算符
  • 文件測試運算符

原生bash不支持簡單的數(shù)學(xué)運算,但是可以通過其他命令來實現(xiàn),例如 awk 和 expr,expr 最常用。

expr 是一款表達(dá)式計算工具,使用它能完成表達(dá)式的求值操作。

例如,兩個數(shù)相加(注意使用的是反引號 ` 而不是單引號 ' ):

#!/bin/bash
val=`expr 2 + 2`
echo "兩數(shù)之和為 : $val"

兩點注意:

表達(dá)式和運算符之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數(shù)編程語言不一樣。

完整的表達(dá)式要被包含,注意這個字符不是常用的單引號,在 Esc 鍵下邊。

一、算術(shù)運算符

下表列出了常用的算術(shù)運算符,假定變量 a 為 10,變量 b 為 20:

注意: 條件表達(dá)式要放在方括號之間,并且要有空格,例如: [a==a==a==b] 是錯誤的,必須寫成 [ a==a == a==b ]

實例

算術(shù)運算符實例如下:

a=10
b=20
val=`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"
if [ $a == $b ]
then
   echo "a 等于 b"
fi
if [ $a != $b ]
then
   echo "a 不等于 b"
fi

執(zhí)行腳本,輸出結(jié)果如下所示:

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a 不等于 b

注意:

乘號(*)前邊必須加反斜杠()才能實現(xiàn)乘法運算;if...then...fi 是條件語句,后續(xù)將會講解。在 MAC 中 shell 的 expr 語法是: $((表達(dá)式)) ,此處表達(dá)式中的 "*" 不需要轉(zhuǎn)義符號 "" 。

二、關(guān)系運算符

關(guān)系運算符只支持?jǐn)?shù)字,不支持字符串,除非字符串的值是數(shù)字。

下表列出了常用的關(guān)系運算符,假定變量 a 為 10,變量 b 為 20:

實例

關(guān)系運算符實例如下:

a=10
b=20
if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi
if [ $a -ne $b ]
then
   echo "$a -ne $b: a 不等于 b"
else
   echo "$a -ne $b : a 等于 b"
fi
if [ $a -gt $b ]
then
   echo "$a -gt $b: a 大于 b"
else
   echo "$a -gt $b: a 不大于 b"
fi
if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
else
   echo "$a -lt $b: a 不小于 b"
fi
if [ $a -ge $b ]
then
   echo "$a -ge $b: a 大于或等于 b"
else
   echo "$a -ge $b: a 小于 b"
fi
if [ $a -le $b ]
then
   echo "$a -le $b: a 小于或等于 b"
else
   echo "$a -le $b: a 大于 b"
fi

執(zhí)行腳本,輸出結(jié)果如下所示:

10 -eq 20: a 不等于 b
10 -ne 20: a 不等于 b
10 -gt 20: a 不大于 b
10 -lt 20: a 小于 b
10 -ge 20: a 小于 b
10 -le 20: a 小于或等于 b

三、布爾運算符

下表列出了常用的布爾運算符,假定變量 a 為 10,變量 b 為 20:

實例

布爾運算符實例如下:

a=10
b=20
if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
   echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 5 或 $b 大于 100 : 返回 false"
fi

執(zhí)行腳本,輸出結(jié)果如下所示:

10 != 20 : a 不等于 b
10 小于 100 且 20 大于 15 : 返回 true
10 小于 100 或 20 大于 100 : 返回 true
10 小于 5 或 20 大于 100 : 返回 false

四、邏輯運算符

以下介紹 Shell 的邏輯運算符,假定變量 a 為 10,變量 b 為 20:

實例

邏輯運算符實例如下:

a=10
b=20
if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi
if [[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

執(zhí)行腳本,輸出結(jié)果如下所示:

返回 false
返回 true

五、字符串運算符

下表列出了常用的字符串運算符,假定變量 a 為 "abc",變量 b 為 "efg":

實例

字符串運算符實例如下:

a="abc"
b="efg"
if [ $a = $b ]
then
   echo "$a = $b : a 等于 b"
else
   echo "$a = $b: a 不等于 b"
fi
if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi
if [ -z $a ]
then
   echo "-z $a : 字符串長度為 0"
else
   echo "-z $a : 字符串長度不為 0"
fi
if [ -n "$a" ]
then
   echo "-n $a : 字符串長度不為 0"
else
   echo "-n $a : 字符串長度為 0"
fi
if [ $a ]
then
   echo "$a : 字符串不為空"
else
   echo "$

執(zhí)行腳本,輸出結(jié)果如下所示:

abc = efg: a 不等于 b
abc != efg : a 不等于 b
-z abc : 字符串長度不為 0
-n abc : 字符串長度不為 0
abc : 字符串不為空

六、文件測試運算符

文件測試運算符用于檢測 Unix 文件的各種屬性。

屬性檢測描述如下:

其他檢查符:

  • -S: 判斷某文件是否 socket。
  • -L: 檢測文件是否存在并且是一個符號鏈接。

實例

變量 file 表示文件 /var/www/runoob/test.sh,它的大小為 100 字節(jié),具有 rwx 權(quán)限。下面的代碼,將檢測該文件的各種屬性:

file="/var/www/runoob/test.sh"
if [ -r $file ]
then
   echo "文件可讀"
else
   echo "文件不可讀"
fi
if [ -w $file ]
then
   echo "文件可寫"
else
   echo "文件不可寫"
fi
if [ -x $file ]
then
   echo "文件可執(zhí)行"
else
   echo "文件不可執(zhí)行"
fi
if [ -f $file ]
then
   echo "文件為普通文件"
else
   echo "文件為特殊文件"
fi
if [ -d $file ]
then
   echo "文件是個目錄"
else
   echo "文件不是個目錄"
fi
if [ -s $file ]
then
   echo "文件不為空"
else
   echo "文件為空"
fi
if [ -e $file ]
then
   echo "文件存在"
else
   echo "文件不存在"
fi

執(zhí)行腳本,輸出結(jié)果如下所示:

文件可讀
文件可寫
文件可執(zhí)行
文件為普通文件
文件不是個目錄
文件不為空
文件存在

到此這篇關(guān)于Shell基本運算符的實現(xiàn)的文章就介紹到這了,更多相關(guān)Shell 基本運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux中g(shù)rep命令詳解

    Linux中g(shù)rep命令詳解

    grep命令是Linux系統(tǒng)中最重要的命令之一,功能是從文本文件或管道數(shù)據(jù)流中篩選匹配的行和數(shù)據(jù),如果再配合正則表達(dá)式,功能十分強(qiáng)大,是Linux運維人員必備的命令,這篇文章主要介紹了Linux中g(shù)rep詳解,需要的朋友可以參考下
    2023-02-02
  • Linux 中的 Install命令

    Linux 中的 Install命令

    install命令的作用是安裝或升級軟件或備份數(shù)據(jù),它的使用權(quán)限是所有用戶。 本文重點給大家介紹Linux 中的 Install命令,感興趣的朋友一起看看吧
    2017-09-09
  • Shell腳本之Expect免交互的實現(xiàn)

    Shell腳本之Expect免交互的實現(xiàn)

    這篇文章主要介紹了Shell腳本之Expect免交互的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • linux中top命令詳解

    linux中top命令詳解

    top命令是Linux下常用的性能分析工具,能夠?qū)崟r顯示系統(tǒng)中各個進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。本文給大家簡單介紹下linux 中的top命令,感興趣的朋友一起看看吧
    2017-10-10
  • crontab設(shè)置每分鐘、每小時、每天、每周、每月、每年定時執(zhí)行的腳本

    crontab設(shè)置每分鐘、每小時、每天、每周、每月、每年定時執(zhí)行的腳本

    這篇文章主要介紹了crontab設(shè)置每分鐘、每小時、每天、每周、每月、每年定時執(zhí)行,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • linux?shell腳本學(xué)習(xí)指南

    linux?shell腳本學(xué)習(xí)指南

    這篇文章主要介紹了linux?shell腳本學(xué)習(xí)指南的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Shell腳本注冊到Linux系統(tǒng)服務(wù)實例

    Shell腳本注冊到Linux系統(tǒng)服務(wù)實例

    這篇文章主要介紹了Shell腳本注冊到Linux系統(tǒng)服務(wù)實例,本文給出一個可以作為Linux服務(wù)的腳本實例,及加入服務(wù)的方法等步驟,需要的朋友可以參考下
    2015-05-05
  • shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法示例

    shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法示例

    這篇文章主要給大家介紹了關(guān)于shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • 腳本實現(xiàn)SSH登錄郵件報警

    腳本實現(xiàn)SSH登錄郵件報警

    自動化運維中,登錄保護(hù)是一個很重要的環(huán)節(jié)這篇文章主要介紹如何給自己的服務(wù)器添加ssh登錄郵件告警,需要的朋友可以參考下
    2015-07-07
  • 一些你必須要熟練掌握的git命令

    一些你必須要熟練掌握的git命令

    git 現(xiàn)在的火爆程度非同一般,它被廣泛地用在大型開源項目,團(tuán)隊開發(fā),以及獨立開發(fā)者,甚至學(xué)生之中。下面這篇文章主要給大家分享了一些你必須要熟練掌握的git命令,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02

最新評論