1. 程式人生 > >shell 程式設計基礎知識

shell 程式設計基礎知識

指令碼的執行方法

sh script.sh | bash script.sh        ##沒有執行許可權時

path/script.sh | ./script.sh        ##絕對路徑,當前目錄下

source script.sh | . script.sh    ##這種方式會使用source或.號來讀如指定shell檔案,並會把其他shell中的變數值或函式返回給父shell繼續使用

在未加執行許可權時,我們無法用第二種絕對路徑的方法直接執行指令碼,需要先給指令碼加執行許可權

其他兩種方法在沒有執行許可權時都可直接使用

 

變數定義與賦值

變數賦值的幾種方式如下:
1.直接賦值:a=hello ##當定義內容中含有空格時,無法正確解析
2.直接賦值:b=‘ westos’  ##單引號預設不解析其中的內容
3.直接賦值:c=“westos”  ##沒有特別要求

4.將命令的結果賦值給變數


練習:打包日誌:

 

特殊變數

$0:獲取指令碼檔名,如果執行時包含路徑,則輸出指令碼路徑

$n(>0):表示指令碼執行時跟在執行語句後的第n個變數

$#:所有的變數個數

4.$?:檢測上一條命令執行結果的返回值,執行成功則為0,執行失敗則非0


read命令

read命令可以用來接受使用者輸入的引數,用法如下:


變數的數值計算

1.expr命令用法如下:

expr $a + 10
expr $a \* 10
(只有乘法需要轉義)

2.$[]和$(())表示式:

echo $[a+10]
echo $[a*10]

3.let命令(let命令在執行後會覆蓋原來的值儲存新的值)

let a+=10
let a-=10

4.小數計算:

echo 1.2 + 3.4 | bc
echo "scale=2;1.23+4.567" | bc

保留n位小數scale=n

練習:計算兩個數的加減乘除

指令碼如下:

執行結果如下: