標籤:之間 指令碼 var border echo 單引號 chm index bash
第一行:#!/bin/bash --> #! 標記指令碼的解譯器
指令碼: #!/bin/bash
echo "hello world"
賦予執行許可權 chmod +x ./test.sh
執行指令碼:./test.sh
定義變數時不需要 $ 符號 :td=‘date "+%y%m%d"‘
1.變數名和符號之間不能有空格
2.首個字元必須為字母
3.中間不能有空格,可以使用劃線(_)
4.不能使用標點符號和 bash 中的關鍵字
除了顯示賦值,還可用語句直接給變數賦值
for file in ‘ls /etc‘ 將 /etc目錄下的檔案名稱迴圈出來
使用一個定義過的變數,只需在變數名前加上 $ 符號即可 echo $td 或 echo ${td}
對同一個變數名,可以進行二次賦值 eg: td=‘date "+%m%d"‘
唯讀變數:readonly 定義變數為唯讀變數,變數值不可更改
url="http://www.baidu.com"
readonly url
url="http://www.tx.com" --> 報錯
刪除變數: unset variable_nae,不能刪除唯讀變數
shell存在三種變數:①局部變數:指令碼或命令中定義,僅在當前指令碼有效
②環境變數:所有程式有效
③shell變數:由shell程式設定的變數,有局部也有環境
單引號字串中不能有變數,不能做字元轉義,雙引號可以實現。
your_name="world"
拼接字串 greeting="hello,${your_name} !"
擷取字串長度 ${#greeting}
提取1—4的字串,下標從0開始 ${#greeting:1:4}
尋找字串 $(expr index "${greeting}" world)
反引號用於命令替換:td=`date "+%y%m%d"` 等同於 $(date "+%y%m%d")
./test.sh 1 2 3
執行的檔案名稱:$0 --> ./test.sh
第一個參數為:$1 --> 1
第二個參數為:$2 --> 2
第三個參數為:$3 --> 3
參數的個數為:$# --> 3
指令碼啟動並執行當前進程ID:$$ -->8010
顯示所有傳遞的參數:$* -->1 2 3
$* 與 [email protected] 的區別:$* 等價於 “1 2 3” ,相當於傳遞了一個參數,[email protected] 等價於 “1” “2” “3” 相當於傳遞了三個參數
variable_name
學習之shell指令碼