運行 Shell 腳本有兩種方法:
1.作爲可執行程序
chmod +x test.sh
./test.sh
2.作爲解釋器參數執行
/bin/bash test.sh
/bin/php test.php
shell變量定義和使用
定義變量名,和使用變量進行輸出(注意賦值的時候=兩邊不能有空格):
your_name="Xiao6"
echo $your_nama
echo ${your_nama} #{}可有可無,加花括號是爲了幫助解釋器識別變量的邊界。
echo "Hello ${your_name}nihao"
除了顯性賦值,還可以用語句給變量賦值
只讀變量
使用 readonly 命令可以將變量定義爲只讀變量,只讀變量的值不能被改變。
#!/bin/bash
myUrl="http://www.google.com"
readonly myUrl
myUrl="http://www.runoob.com"
運行腳本,結果如下:
/bin/sh: NAME: This variable is read only.
刪除變量:
使用 unset 命令可以刪除變量。以下將不會有任何輸出
#!/bin/sh
myUrl="http://www.runoob.com"
unset myUrl
echo $myUrl
Shell 字符串
單雙引號的區別跟PHP類似:
單引號字符串的限制:單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的;單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作爲字符串拼接使用。
雙引號的優點:雙引號裏可以有變量、雙引號裏可以出現轉義字符
#!/bin/bash
your_name='runoob'
str1='Hello, I know you are $your_name!'
str2="Hello, I know you are $your_name!"
echo $str1
echo $str2
執行以後輸出:
Hello, I know you are $your_name!
Hello, I know you are runoob!
單引號可以這樣寫,就可以正常輸出
str3='Hello, I know you are '$your_name'!'
echo $str3
echo ${$str3} #獲取字符串長度
查找字符 i 或 o 的位置(哪個字母先出現就計算哪個)
string="runoob is a great site"
echo `expr index "$string" io` # 輸出 4
注意: 以上腳本中 ` 是反引號,而不是單引號 ',不要看錯了哦。