Shell 腳本簡介
Shell 腳本 (shell script),是一種爲shell編寫的腳本程序。
業界所說的 shell 通常都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的 “shell編程” 都是指 shell 腳本編程,不是指開發 shell 自身。
# #!是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。
#!/bin/bash
#echo 命令用於向窗口輸出文本。
echo "this is a shell script"
變量命名規則
1.只能使用數字、下劃線、英文字母,首個字符不能以數字開頭
2.中間不能有空格,可以使用下劃線
3.不能使用標點符號
4.不能使用bash裏的關鍵字
變量的定義
#定義變量時不加 $ 符合
file_name="photo"
變量的使用
file_name="photo"
#使用變量時需要加上 $ 符號
echo "$file_name"
#大括號可加可不加,如果需要識別變量的邊界則加上,當然建議加上
echo "${file_name}add"
#變量的重新賦值
file_name="hive"
#只讀變量的定義,只能讀不能被修改否則會報錯
readonly file_name
#變量的刪除
unset file_name
單雙引號的區別
- 單引號裏的任何字符都會原樣輸出,單引號字符串中的變量是無效的
- 單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作爲字符串拼接使用
- 雙引號裏可以有變量
- 雙引號裏可以出現轉義字符
#!/bin/bash
echo "測試變量相關"
str="this is a string"
#使用雙引號
echo "$str"
echo "hello,${str}"
echo "hell,\"${str}\"!" --轉義
echo "hell,"$str"!"
#輸出結果
this is a string
hello,this is a string
hell,"this is a string"!
hell,this is a string!
#使用單引號
echo '$str'
echo 'hello,${str}'
echo 'hello,'${str}'!' --使用變量進行字符串拼接
echo 'hell,\"${str}\"!'
#輸出結果
$str
hello,${str}
hello,this is a string!
hell,\"${str}\"!
字符串相關基本操作
#獲取字符串長度
echo ${#str}
#截取字符串從0開始截取3位
echo ${str:0:3}
#截取字符串從2開始截取4位
echo ${str:2:4}
#查找字符串中某一個字符的位置從1開始,找不到則輸出0,多個查找只會輸出第一個找到的下標
echo `expr index "${str}" ex` --使用的是反引號
數組相關基本操作
#數組的定義使用括弧,數據之間使用空格
arr=(1 2 3 4 5)
#數組的查詢
echo ${arr[0]} --輸出某一下標的數據
echo ${arr[*]} --輸出所有數據
echo ${arr[@]} --輸出所有數據
#獲取數組長度
echo ${#arr[2]} --輸出指定下標的數據的長度
echo ${#arr[*]} --輸出數組的長度
Shell 腳本執行方式
1.作爲可執行程序
#給腳本賦予執行權限
chmod +x ./test.sh
#執行腳本 ./test.sh 告訴系統在當前目錄尋找該腳本
./test.sh
2.作爲解釋器參數
#不需要在腳本中第一行指定解釋器
sh test.sh