第一行:#!/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
$* 與 $@ 的區別:$* 等價於 “1 2 3” ,相當於傳遞了一個參數,$@ 等價於 “1” “2” “3” 相當於傳遞了三個參數
shell數組:array_name=(value1 ... valuen) --> my_array=(A B "C" D)
讀取數組元素:${array_name[index]}
獲取所有數組元素: ${array_name[*]} 或 ${array_name[@]}
獲取數組長度: ${#array_name[*]} 或 ${#array_name[@]}
Shell 基本運算符: