Shell基本語法

2021-10-17 06:49:42 字數 2793 閱讀 8718

二、引數傳遞

三、運算

四、邏輯運算子

五、條件分支

六、迴圈控制

七、函式

八、shell 輸入/輸出重定向

九、shell 檔案包含

1. 變數命名之間不能有空格

2. 使用變數需要使用$符號,最好使用{}來規定變數的邊界,可以在字串中直接使用變數

3. 唯讀變數用 readonly 修飾

4. 刪除變數 unset (unset 命令不能刪除唯讀變數)

5. 字串推薦使用雙引號(可以有變數,也可以有轉義符)

拼接字串

your_name="lenjor"

# 使用雙引號拼接

greeting="hello, "$your_name" !"

greeting_1="hello, $ !"

獲取字串長度

echo $ #輸出 4

提取子字串

string="lenjorliang is a great programer"

echo $ # 輸出 enjor

查詢子字串

a="the cat sat on the mat"

test="cat"

awk -v a="$a" -v b="$test" 'begin'

array_name=(value0 value1 value2 value3)

valuen=$

使用 @ 或 * 符號可以獲取陣列中的所有元素,例如:

echo "陣列的元素為: $"

echo "陣列的元素為: $"

# 指定下標訪問

my_array[0]=a

格式: $n 	n為數字,0預設是檔名稱,第乙個引數從1開始

$1 標識第乙個引數

$$ 執行程序號

$* 獲取全部引數

$# 引數個數

val=`expr 2 \* 12 - 2`

echo $val # 22

1. 使用 expr 來計算

2. 乘法需要有反斜槓轉義

3. 每個運算元之間必需要有空格分隔

與	-a

或 -o

非 !

if [condition]

then

[...]

elif [condition]

then

[...]

else

[...]

fi;

# for條件迴圈

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

# while條件迴圈

while condition

do command

done

# 直到condition為true停止

until condition

do command

done

# case使用

case 值 in

模式1)

command

...commandn

;模式2)

command

...commandn

;;esac

函式定義如下:

[ function ] funname [()]

# 乙個簡單的函式例子

function myfunc()

# 函式的呼叫,在後面可以新增引數,在函式體裡面使用 $n 接收

myfunc lenjor;

function myfunc()

val0=0;

if (myfunc $val0)

then echo "true";

else echo "false";

fi;val=1;

if (myfunc $val)

then echo "true";

else echo "false";

fi;輸出結果:

函式返回值:0

true

# 函式的返回值只能是0~255的int值,如果沒有返回,會返回最後一行執行的結果,注意函式返回值作為condition的時候,只有0的時候才是true,其他的值都是false

重定向命令列表如下:

命令說明

command > file

將輸出重定向到 file。

command < file

將輸入重定向到 file。

command >> file

將輸出以追加的方式重定向到 file。

n > file

將檔案描述符為 n 的檔案重定向到 file。

n >> file

將檔案描述符為 n 的檔案以追加的方式重定向到 file。

n >& m

將輸出檔案 m 和 n 合併。

n <& m

將輸入檔案 m 和 n 合併。

<< tag

將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

. filename   # 注意點號(.)和檔名中間有一空格

或 source filename

shell 基本語法

1,環境變數 環境變數可以從父程序傳給子程序,即shell的環境變數可以傳遞給fork出來的子程序 檢視當前shell的環境變數 command itcast printenv printenv 中的 env 是environment variable 的縮寫2,本地變數 只存在於當前程序 檢視當前...

shell 基本語法

將os命令堆積到可執行的檔案裡,由上至下的順序執行文字裡的os命令 就是指令碼了.再加上些智慧型 條件 流控 控制,就變成了智慧型化指令碼了.part1 為何要有變數 程式的執行就是一些列狀態的變數 用變數值的變化去表示 part2 變數命名規則 以字母或下劃線開頭,剩下的部分可以是 字母 數字 下...

shell基本語法

shell基本語法 是乙個約定的標記,他告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種shell shell變數 定義變數 num 5 使用變數時要在變數名前加乙個 例 echo num 注意 等號的兩邊不能有空格 命名只能使用英文本母,數字和下劃線,首字元不能以數字開頭。中間不能有空格,可以...