Bash最基本的文法
循環和條件判斷—Bash
Vim快捷鍵
運算符----Bash
數組----Bash
字元串—Bash
變量----Bash
基本運算符
一般都有哪些運算符?
- 算數運算符
- 關系運算符
- 布爾運算符
- 字元串運算符
- 檔案測試運算符
巨人的肩膀:
- Bash腳本教程
- 菜鳥教程
算數運算符
Bash
不支援簡單的數學運算,比如
a=2+2
,這是不對的。但是,可以通過其他的指令來實作,比如
awk
和
expr
。
expr
是一款表達式計算工具,使用它能完成表達式的求值操作。
注意使用的是反引号`,不是單引号,也不是雙引号,也不需要{}、()
#!/bin/bash
var=`expr 2 + 2`
echo "兩數之和:$val"
#輸出
4
#expr與運算之間要有空格的,注意看上述代碼
接下來就好說喽。
+-*/
最基本的
運算法 | 說明 | 舉例 |
---|---|---|
+ | 加法 | |
- | 減法 | |
* | 乘法 | |
/ | 除法 | |
% | 取餘 | |
** | 指數 |
還有
++、--
,這種自增/減運算
運算符 | 說明 | 舉例 |
---|---|---|
++ | 自增運算(字首或字尾) | |
– | 自減運算(字首或字尾) | echo $((a–)) |
進一步,取餘,指派,相等,不相等。可以觀察發現,指派、比較并不需要
expr
條件表達式要放在方括号之間
運算法 | 說明 | 舉例 |
---|---|---|
= | 指派 | a=$b |
== | 比較是否相等 | [$a == $b] |
!= | 比較是否不相等 | [$a != $b] |
#!/bin/bash
#author:xxxx
#url:xxxx
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a \* $b` #這裡需要轉義字元\
echo "a * b : $val"
當然也可以不适用
expr
,可以
((...))
;比如
((foo=5+5))
關系運算符
關系運算符與算數運算符,怎麼說呢?算數運算符有加減乘除取餘,甚至有等于不等于,但是沒有大于小于,不大于,不小于。是以呢,關系可以是算數運算符的補充。
關系運算符隻支援數字,不支援字元串,除非字元串是數字**
相等不相等、大于等于小于,不大于,不小于
比如a=10,b=20
運算符 | 說明 | 舉例 |
---|---|---|
-eq | 比如兩數是否相等,相等傳回ture | |
-ne | 比較兩數是否不相等,不相等傳回ture | |
-gt | t表示比較大小;g表示great;左邊是否大于右邊,是傳回ture | |
-lt | l表示little;左邊是否小于右邊,是傳回ture | |
-ge | g表示great;e表示equal;左邊是否大于等于右邊 | |
-le | l表示little;e表示equal;左邊是否小于等于右邊 | |
布爾運算符
非運算---- !
或運算---- o (表示or)
與運算---- a (表示all)
邏輯運算符
&&
邏輯的 AND
||
邏輯的OR
字元串運算符
字元串主要是比對字元串或是檢測字元串是否為空啊
假定變量 a 為 “abc”,變量 b 為 “efg”
運算符 | 說明 | 舉例 |
---|---|---|
= | 兩個字元串是否相等 | |
!= | 兩個字元串是否不相等 | |
-z | 檢測字元串長度是否為0;z表示zero | |
-n | 檢測字元串是否有值;n表示有值 | |
$ | 檢測字元串是否為空 |
檔案測試運算法
最容易記住的是權限,
-r -w -x
,可讀可寫可執行
操作符 | 說明 | 舉例 |
---|---|---|
-r file | 檢測檔案是否可讀 | |
-w file | 檢測檔案是否可寫 | |
-x file | 檢測檔案是否可執行 | |
-d -b -c
是否是目錄檔案、塊裝置檔案、字元裝置檔案
操作符 | 說明 | 舉例 |
---|---|---|
-d file | 檢測是否是目錄檔案 | |
-b file | 檢測是否是塊裝置 | |
-c file | 檢測是否是字元裝置 | |
-p file | 檢測是否是有名管道 | |
檢測檔案是否為空,是否存在(包括目錄)
操作符 | 說明 | 舉例 |
---|---|---|
-e file | e表示exist | |
-s file | 檢測是否為空 |
其他檢查符:#這個用的時候可以查
- -S: 判斷某檔案是否 socket。
- -L: 檢測檔案是否存在并且是一個符号連結。