每天學(xué)習(xí)一個shell技能(4)

每天學(xué)習(xí)一個shell技能(4)

shell基本運算符

基本使用:

#!/bin/bash

val=`expr 2 + 2`
echo "兩數(shù)之和為 : $val"
  • 表達式和運算符之間要有空格蜕劝,例如 2+2 是不對的浪秘,必須寫成 2 + 2滞项,這與我們熟悉的大多數(shù)編程語言不一樣
  • 完整的表達式要被 ` ` 包含君丁,注意這個字符不是常用的單引號筹麸,在 Esc 鍵下邊

算術(shù)運算符

運算符 說明 舉例
+ 加法 `expr $a + $b` 結(jié)果為 30活合。
- 減法 `expr $a - $b` 結(jié)果為 -10。
* 乘法 `expr $a * $b` 結(jié)果為 200物赶。
/ 除法 `expr $b / $a` 結(jié)果為 2白指。
% 取余 `expr $b % $a` 結(jié)果為 0。
= 賦值 a=$b 將把變量 b 的值賦給 a块差。
== 相等 [ a ==b ] 返回 false侵续。
!= 不相等 [ a !=b ] 返回 true倔丈。

條件表達式要放在方括號之間憨闰,并且要有空格状蜗,例如: [a==b] 是錯誤的,必須寫成 [ a ==b ]

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

關(guān)系運算符

  • -eq: 是否等于
  • -ne: 是否不等于
  • -gt: 是否大于
  • -lt: 是否小于
  • -ge: 是否大于等于
  • -le: 是否小于等于

EQ 就是 EQUAL等于
NE 就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于 
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于


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

布爾運算符

  • !: 非運算
  • -o: 或運算
  • -a: 與運算

邏輯運算符

  • &&:與
  • ||:或

字符串運算

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 "$a : 字符串為空"
fi
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹉动,一起剝皮案震驚了整個濱河市轧坎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泽示,老刑警劉巖缸血,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異械筛,居然都是意外死亡捎泻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門埋哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笆豁,“玉大人,你說我怎么就攤上這事赤赊〈秤” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵抛计,是天一觀的道長哄孤。 經(jīng)常有香客問我,道長吹截,這世上最難降的妖魔是什么瘦陈? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮波俄,結(jié)果婚禮上晨逝,老公的妹妹穿的比我還像新娘。我一直安慰自己弟断,他們只是感情好咏花,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阀趴,像睡著了一般昏翰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刘急,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天棚菊,我揣著相機與錄音,去河邊找鬼叔汁。 笑死统求,一個胖子當著我的面吹牛检碗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播码邻,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼折剃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了像屋?” 一聲冷哼從身側(cè)響起怕犁,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎己莺,沒想到半個月后奏甫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡凌受,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年阵子,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胜蛉。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡挠进,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腾么,到底是詐尸還是另有隱情奈梳,我是刑警寧澤,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布解虱,位于F島的核電站攘须,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏殴泰。R本人自食惡果不足惜于宙,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悍汛。 院中可真熱鬧捞魁,春花似錦、人聲如沸离咐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宵蛀。三九已至昆著,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間术陶,已是汗流浹背凑懂。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梧宫,地道東北人接谨。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓摆碉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脓豪。 傳聞我的和親對象是個殘疾皇子巷帝,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容