Linux Shell
一個簡單的shell文件示例:
#!/bin/bash
echo "Hello World !"
SHELL定義變量示例:your_name="test_name"
使用一個定義過的變量,只要在變量名前面加美元符號即可
使用變量示例:your_name=" test_name "
echo $your_name
echo ${your_name}
變量名外面的花括號是可選的,加不加都行,加花括號是爲了幫助解釋器識別變量的邊界
已定義的變量,可以被重新定義,如:
your_name=" test_name "
echo $your_name
your_name=" test_name2"
echo $your_name
使用readonly 命令可以將變量定義爲只讀變量,只讀變量的值不能被改變。
下面的例子嘗試更改只讀變量,結果報錯:
#!/bin/bash
myUrl="http://www.baidu.com"
readonly myUrl
myUrl=http://www.google.com
使用 unset 命令可以刪除變量。語法:
unset variable_name
變量被刪除後不能再次使用。unset 命令不能刪除只讀變量。
SHELL拼接字符串(直接拼接字符串變量)
your_name=" test_name "
greeting="hello,"$your_name" !"
greeting_1="hello, ${your_name}!"
echo $greeting $greeting_1
SHELL獲取字符串長度(使用#號操作)
string="abcd"
echo ${#string} #輸出4
SHELL提取子字符串
以下實例從字符串第 2 個字符(索引爲1)開始截取 4 個字符:
string="runoob is a great site"
echo ${string:1:4} # 輸出 unoo
SHELL查找子字符串
查找字符 "i 或s" 的位置:
string="runoob is a greatcompany"
echo `expr index "$string"is` # 輸出 8
SHELL數組相關:
bash支持一維數組(不支持多維數組),並且沒有限定數組的大小
在Shell中,用括號來表示數組,數組元素用"空格"符號分割開。定義數組的一般形式爲:
數組名=(值1 值2 ... 值n)
讀取數組元素值的一般格式是:
${數組名[下標]}
例如:
valuen=${array_name[n]}
使用@符號可以獲取數組中的所有元素,例如:
echo ${array_name[@]}
獲取數組長度的方法與獲取字符串長度的方法相同,例如:
# 取得數組元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數組單個元素的長度
lengthn=${#array_name[n]}
SHELL外部引用:
和其他語言一樣,Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作爲一個獨立的文件
Shell 文件包含的語法格式如下:
. filename # 注意點號(.)和文件名中間有一空格
或
source filename
shell函數示例:
下面的例子定義了一個函數並進行調用:
#!/bin/bash
demoFun(){
echo "這是我的第一個 shell 函數!"
}
echo "-----函數開始執行-----"
demoFun
echo "-----函數執行完畢-----"
輸出結果:
-----函數開始執行-----
這是我的第一個 shell 函數!
-----函數執行完畢-----
在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數...
注意,$10 不能獲取第十個參數,獲取第十個參數需要${10}。當n>=10時,需要使用${n}來獲取參數。
還有SHELL很有用的一個命令test:
Shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。
實例演示:
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '兩個數相等!'
else
echo '兩個數不相等!'
fi
輸出結果:
兩個數相等!