Shell是一種應用程式,提供一個界面訪問操作系統內核的服務. 1:編寫shell腳本 vi test.sh #!/bin/bash #指定這個腳本需要什麼解釋器來執行 echo "Hello World !" # echo命令用於向視窗輸出文本 2:執行shell腳本 cd入文件存在的目錄 chm ...
Shell是一種應用程式,提供一個界面訪問操作系統內核的服務.
1:編寫shell腳本
vi test.sh
#!/bin/bash #指定這個腳本需要什麼解釋器來執行
echo "Hello World !" # echo命令用於向視窗輸出文本
2:執行shell腳本
cd入文件存在的目錄
chmod +x ./test.sh #使腳本具有執行的許可權
./test.sh #執行腳本
3:Shell變數的理解
例子: your_name="wangzhi.cn"
註意:變數名和等號之間不能有空格
規則:
(1).首字母必須為字母(a-z,A-Z)
(2).中間不能有空格,可以使用(_)
(3).不能使用標點符號
(4).不能使用bash中的關鍵字(可以使用help命令查看保留關鍵字)
例子:for file in `ls /etc` 這個語句可以將/etc下目錄的文件名迴圈出來
4:變數的使用
定義變數:your_name = "wangzhi"
使用變數:echo ${your_name} # 建議輸出變數加上{},養成好的編程習慣.
5:Shell字元串(註意註意:下標是從0開始計算的)
單引號:
str = 'This is a string' (限制:
單引號中的任何字元都會原樣輸出,單引號中無法輸出變數;
單引號中不能出現單引號)
雙引號:
str = "Hello, I know your are \"${your_name}\"!\n"
(雙引號內可以有變數;雙引號內可以有轉義字元)
字元串拼接:
your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
獲取字元串長度:
string="abcd"
echo ${#string} #輸出 4
提取字元串
string="alibaba is a great company"
echo ${string:1:4} #輸出liba,字元串的下標是從0開始的
查找子字元串(下標從1開始計算)
string="alibaba is a great company"
echo `expr index "$string" is`
#!/bin/bash
your_name="wangzhi"
echo ${your_name}
str='This is a String'
echo "單引號字元串 :${str}" # 拼接都可以這樣寫,下麵的寫法是被誤導的
str2="Hello, I know you are \"${your_name}\"!\n"
echo "雙引號字元串 : \" ${str2}\"\n"
greet="Hello, ${your_name} !"
echo "字元串拼接 : \" ${greet}\"\n"
echo "獲取字元串長度 : \"${#greet}\"\n" # 0~length-1,與java中相同
echo "提取字元串 : \"${greet:1:4}\"\n" # 下標從0開始,從1開始計算4個
echo "查找子字元串 : \n"
echo `expr index "${greet} hello"` # 下標是從1開始計算的
6:Shell數組 (可以存放各種數據類型,下標從0開始)
定義:${數組名[下標]} 例如: valuen = ${array_name[n]}
使用@符號可以獲取數組中的所有元素,例如:echo ${array_name[@]}
獲取數組長度:
# 取得數組元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數組單個元素的長度
lengthn=${#array_name[n]}
7:註釋 只有單行註釋----(使用 # 進行註釋)