Shell學習筆記二(基本語法)

Shell 數組

       Linux Shell在編程方面比Windows批處理強大很多,無論是在循環、運算。

       bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。類似與C語言,數組元素的下標由0開始編號。獲取數組中的元素要利用下標,下標可以是整數或算術表達式,其值應大於或等於0。

 定義數組:

在Shell中,用括號來表示數組,數組元素用“空格”符號分割開。定義數組的一般形式爲:
數組名=(值1 值2 ... 值n)

例如:

array_name=(value0 value1 value2 value3)

或者:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

讀取數組:

讀取數組元素值的一般格式是:

${數組名[下標]}

例如:

array_name[n]=valuen
echo v=${array_name[n]} #輸出valuen

使用@符號可以獲取數組中的所有元素,例如:

echo ${array_name[@]}

獲取數組的長度:

array_name=(value0 value1 value2 value3)                                                             # 取得數組元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數組單個元素的長度
lengthn=${#array_name[n]}

Shell 的echo 指令

echo是Shell的一個內部指令,用於在屏幕上打印出指定的字符串。

如果變量與其它字符相連的話,需要使用大括號({ }):

  mouth=5
  echo "${mouth}-5-2014"

顯示換行:

echo "OK!\n"
echo "It is a test"


顯示不換行:

echo "OK!\c"
echo "It is a test"

顯示結果定向到文件

echo "It is a test" > myfile

Shell test 命令

Shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。

數值測試

參數 說明
-eq 等於則爲真
-ne 不等於則爲真
-gt 大於則爲真
-ge 大於等於則爲真
-lt 小於則爲真
-le 小於等於則爲真

num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'The two numbers are equal!'
else
    echo 'The two numbers are not equal!'
fi



字符串測試


參數 說明
= 等於則爲真
!= 不相等則爲真
-z 字符串 字符串長度僞則爲真
-n 字符串 字符串 字符串長度不僞則爲真
num1=100
num2=100
if test num1=num2
then
    echo 'The two strings are equal!'
else
    echo 'The two strings are not equal!'
fi

文件測試


參數 說明
-e 文件名 如果文件存在則爲真
-r 文件名 如果文件存在且可讀則爲真
-w 文件名 如果文件存在且可寫則爲真
-x 文件名 如果文件存在且可執行則爲真
-s 文件名 如果文件存在且至少有一個字符則爲真
-d 文件名 如果文件存在且爲目錄則爲真
-f 文件名 如果文件存在且爲普通文件則爲真
-c 文件名 如果文件存在且爲字符型特殊文件則爲真
-b 文件名 如果文件存在且爲塊特殊文件則爲真

   

   cd /bin
    if test -e ./bash
    then
    echo 'The file already exists!'
    else
    echo 'The file does not exists!'
    fi


另外,Shell還提供了與( ! )、或( -o )、非( -a )三個邏輯操作符用於將測試條件連接起來,其優先級爲:“!”最高,“-a”次之,“-o”最低。例如:

cd /bin
if test -e ./notFile -o ./bash
then
    echo 'One file exists at least!'
else
    echo 'Both dose not exists!'
fi


發佈了25 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章