天天看點

shell 數組元素有空格_Shell程式設計總結

一、Hello World

建立檔案test.sh

然後編輯代碼:

#!bin/bash/

echo “hello world !”

cd 到目标目錄下:

chmod +x ./test.sh #使腳本有執行權限

./test.sh #運作腳本

另一種運作方式:

sh test.sh

二、變量

變量名要求:

a)隻能是數字,字元,下劃線,并且首字母不能是數字

b)中間不能有空格,但是可以有下劃線

c)不能用關鍵詞

myshell="123456"

echo ${myshell}

echo $myshell

花括号加不加都行,加花括号隻是友善解釋器識别變量邊界。

另外變量和運算符之間不能有空格

隻讀變量

myshell="1234"

readonly myshell

隻讀變量意味着不能更改

删除變量

myshell="1234"

unset myshell

變量類型

局部變量:隻在shell中起作用,shell運作的時候其他指令不能調用它

環境變量:shell運作的時候,其他指令可以調用的

shell變量:是由shell程式設定的特殊變量,有局部變量也有環境變量,這些變量是保證shell的正常運作

單引号:

任何字元都會原樣輸出,單引号裡面的變量無效

單引号裡面不能出現單引号(轉義的也不行)

雙引号

雙引号裡可以有變量

雙引号裡可以出現轉義字元

#!/bin/bash

yourname='lihua'

myshell="Hello, I know you are "${yourname}"!"

echo ${myshell}

拼接字元

#!/bin/bash

yourname="lihua"

chat="Hello, "$yourname" !"

chat1="Hello, ${yourname} !"

echo ${chat} ${chat1}

擷取字元串長度

#!/bin/bash

myshell="123"

echo ${#myshell}

提取子串

#!/bin/bash

string="I'm AI"

echo ${string:1:2}

查找子串

#!/bin/bash

string="hello, AI"

echo `expr index "$string" h` #兩邊的不是單引号是Esc鍵下邊的那個符号,句式是固定的的

shell數組

shell隻支援一維數組

a)格式:

數組名=(val1 val2…) #用空格分離

value=(1 2 3 4)

随機通路下表:

value[1]=1

讀取數組:

${數組名[下标]}

讀取全部元素${數組名[@]}

擷取長度

# 取得數組元素的個數

length=${#數組名[@]}

# 或者

length=${#數組名[*]}

# 取得數組單個元素的長度

lengthn=${#數組名[n]}

shell傳遞參數

傳遞參數的格式,$n,$0表示執行檔案名,$1表示第一個參數,之後以此類推:

#!/bin/bash

echo "name:$0"

a=$1

b=$2

c=`expr ${a} + ${b}`

echo ${c}

$# 傳遞到腳本的參數個數

$* 以第一個單字元顯示所有腳本傳遞的參數。

$$ 腳本運作的目前程序ID号

$! 背景運作的最後一個程序的ID号

$@ 與$*相同,使用時加引号,是傳回每個參數

$- 顯示shell使用的目前選項,與set指令功能相同

$? 顯示最後指令的退出狀态。0表示沒有錯誤,其他任何值都表示有錯誤。

shell 數組元素有空格_Shell程式設計總結