shell
注:本文的圖片摘錄於runoob網站http://www.runoob.com
定義變量的時候,變量名不嫁美元符號 PHP語言中需要
使用定義過的變量 $name 可以加花括號識別邊界 ${name}
只讀變量 readonly name
刪除變量 unset name 不能刪除只讀變量
局部變量 僅在當前shell實例中有效
環境變量 所有的程序包括shell啓動的程序都能夠訪問
Shell變量 shell程序設置的特殊變量
字符串
單引號中的任何字符都會原樣輸入,單引號字符串中的變量是無效的
雙引號可以出現轉義字符
雙引號拼接
greeting_1="hello, ${your_name} !"
單引號拼接
greeting_2='hello, '$your_name' !'
獲取字符串長度
string="abcd"
echo ${#string} #輸出 4
截取字符串
string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo
查找字符串 i或者o 位置誰先出現就計算哪個
string="runoob is a great site"
echo `expr index "$string" io` # 輸出 4
Bash只支持一維數組
array_name=(v1 v2 v3) array_name[0]=v1
讀取下標 ${array_name[0]}
使用@符號可以獲取數組中的所有元素
${array_name[@]}
# 取得數組元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數組單個元素的長度
lengthn=${#array_name[n]}
單行註釋 #
多行註釋
:<<EOF
註釋內容...
註釋內容...
註釋內容...
EOF
Shell傳遞傳輸 腳本內獲取參數的格式爲:$n。n 代表一個數字,1 爲執行腳本的第一個參數,2 爲執行腳本的第二個參數,以此類推……
echo "Shell 傳遞參數實例!";
echo "執行的文件名:$0";
echo "第一個參數爲:$1";
echo "第二個參數爲:$2";
echo "第三個參數爲:$3";
$ ./test.sh 1 2 3
Shell 傳遞參數實例!
執行的文件名:./test.sh
第一個參數爲:1
第二個參數爲:2
第三個參數爲:3
Shell 基本運算符
Bash不支持簡單的數學運算可以通過其他命令來實現最常用都是expr
兩個數相加使用的反引號` 不是單引號
val=`expr 2+2` 完整的表達式要被``包含
乘法比較特殊符號表達是 ‘\*’
關係運算符
布爾運算符
邏輯運算符
舉個例子
a=10 b=20 if [[ $a -lt 100 && $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi
字符串運算符
echo 命令
1.顯示普通字符串
echo "It is a test"
2.顯示轉義字符
echo "\"It is a test\"" 結果爲 "It is a test"
3.顯示變量
read name read命令從標準輸入中讀取一行,並把輸入行的每個字段的值指給shell變量
echo "$name It is a test"
4.顯示換行
echo -e "OK! \n" # -e 開啓轉義
echo "It is a test"
5.顯示不換行
echo -e "OK! \c" # -e 開啓轉義\c 不換行
echo "It is a test"
6.顯示結果定向至文件
echo "It is a test" > myfile
7.原樣輸出字符串,不進行轉義或取變量
echo '$name\"' 結果爲$name\"
8.顯示命令執行結果
echo `date` 結果
Thu Jul 24 10:08:46 CST 2018