Shell 備忘

Shell 備忘

  • $# 傳遞到腳本的參數的個數
  • $* 以一個單字符串顯示全部向腳本傳遞的參數,便是將參數當成一個字符串顯示
  • $$ 腳本運行的當前進程ID 號
  • $! 後臺運行的最後一個進程ID 號

1. Shell 數組

bash shell 只支持一維數組,不支持多維數組,語法格式以下:
array_name=(values1 values2 ... values)
讀取數組以下:shell

${array_name[index]}  
echo "數組的元素爲:"${array_name[*]}         # 顯示全部的元素,下同  
echo "數組的元素爲:"${array_name[@]}  
echo "數組的長度爲:" ${#array_name[@]}    #獲取數組的長度

2. 運算符

expr 是一款表達式計算工具,使用它能完成表達式的求值操做。數組

val=`expr 2 + 2`  
echo "2+2=${val}"   #注意:表達式和運算符之間要有空格,否則會原樣輸出  
echo `expr 2 \* 2`  
echo `expr 2 / 2`

3. test 命令

Shell 中的 test 命令用於檢查某個條件是否成立,它能夠進行數值,字符和文件三個方面的測試
-eq 等於則爲真
-ne 不等於則爲真
-gt 大於則爲真
-ge 大於等於則爲真
-lt 小於則爲真
-le 小於等於則爲真bash

num1=100  
num2=200  
if test ${num1} -eq ${num2}  
    then  
    #do code  
else  
    #do others  
fi

= 等於則爲真
!= 不相等則爲真
-z 字符串 字符串的長度爲0則爲真
-n 字符串 字符串的長度不爲0則爲真函數

str1="my name is rola"  
str2="my name is ming"  
if test ${str1} = ${str2}  
    then  
    #do code  
else  
    #do others  
fi

-e 文件名 若是文件存在則爲真
-r 文件名 若是文件存在且可讀爲真
-w 文件名 若是文件存在且可寫爲真
-x 文件名 若是文件存在且可執行爲真
-s 文件名 若是文件存在且至少有一個字符則爲真
-d 文件名 若是文件存在且爲目錄則爲真
-f 文件名 若是文件存在且爲普通文件則爲真
-c 文件名 若是文件存在且爲字符型特殊文件則爲真
-b 文件名 若是文件存在且爲塊特殊文件則爲真工具

if test -e ./bash  
then  
    #do code  
else  
    #do others  
fi

4. 流程控制

if測試

if condition  
then  
#code
fi  
########################################################  
if condition  
then  
#code  
else  
#code
fi  
########################################################  
if condition  
then  
#code  
elif condition  
then  
#code  
else  
#code  
fi

for 循環code

for var in list  
do  
    #code  
done  
##################################################  
while condition  
do  
    #code  
done

case進程

case 值 in  
model 1)  
        # code  
        ;;  
model 2)  
        # code  
       ;;  
esac  
#demo  
read num  
case $num in  
    1) echo  '你選擇了 1'  
    ;;  
    2) echo '你選擇了 2'  
    ;;  
    3) echo '你選擇了 3'  
    ;;  
    4) echo '你選擇了 4'  
    ;;  
    *) echo '沒有選擇 '  
    ;;  
esac  
#  在 case 中,用 **;;**  表示 break

5. 函數

[function] funname [()]  
{  
    action;
    [return]
}  
# [] 爲可選,若是沒有return,默認以最後一條語句做爲返回值

文件引入或者包含字符串

. filename  #注意前面有個點號  
source filename
相關文章
相關標籤/搜索