shell 是什麼?shell是溝通內核和命令行的潤滑劑python
屬於不須要解釋的語言,便是編譯型語言shell
那麼python 和perl 都是解釋型語言,執行效率更低vim
vim test.shbash
#!/bin/bash ##調用bash,用來解釋一下這個腳本用什麼解釋器來解釋less
echo "Hello World !!"函數
!wq ##強制退出菜單spa
vim test.sh #!/bin/bash your_name="Carlton" echo ${your_name}
{}的意思就是用來表示變量命令行
$0 當前腳本的文件名code
$n 傳遞給腳本或函數的參數。n 表示第幾個參數進程
$# 傳遞給腳本或函數的參數個數
$* 傳遞給腳本或函數的全部參數
$$ 當前shell 進程ID,對於shell腳本,就是這些腳本所在進程的ID
$? 上個命令退出時候的狀態
a=10 b=20 carlton=$[$a + $b] echo "a+b: $val" if [ $a=$b ]; then echo "a is equal to b" fi
if [ $a -lt $b ]; then echo "$a -lt $b: a is less than b" else echo "$a -lt $b: b is not less than b" fi
[ !false ] [ $a -lt 20 -o $b -gt 100 ] [ $a -lt 20 -a $b -gt 100 ] 均返回true
if [ -z $a ] then echo "-z $a : string length is zero" else echo "-z $a : string length is not zero" fi
z和n 是對立面
if 語句經過關係運算來判斷表達式胡真假
if…fi
if..else..fi
if…elif…elif…fi
if…else…fi語句用於if兩種結果分別執行什麼樣的命令。
寫法:
if [ 條件 ] then 執行語句 若是if的條件爲真 else 執行語句 若是if的條件爲假 fi
if…elif…elif…if語句用於判斷多個條件。
寫法:
if [ 條件 ] then 執行語句 elif [ 條件 ] then 執行語句 else 執行語句 fi
case用於判斷一個值的多種狀況,不一樣的狀況執行不一樣的命令
case 值 in 值1 執行語句 ;; 值2 ;; … esac echo 'Input a number between 1 to 4' echo 'Your number is:\c' read aNum case $aNum in 1) echo 'You select 1' ;; 2) echo 'You select 2' ;; 3) echo 'You select 3' ;; 4) echo 'You select 4' ;; *) echo 'You do not select a number between 1 to 4' ;; esac
while循環用於不斷執行一系列命令,也用於從文件中讀取數據。
寫法
while 命令
do
執行語句
done
命令執行完畢,控制返回循環頂部,從頭開始只到條件爲假。
test=0 while [ $test -lt 5 ] do test=$[ $test + 1 ] echo $test done