一個Shell腳本是一個文本文件,包含一個或多個命令。做爲系統管理員,咱們常常須要使用多個命令來完成一項任務,咱們能夠添加這些全部命令在一個文本文件(Shell腳本)來完成這些平常工做任務。shell
在Linux操做系統,「/bin/bash」是默認登陸shell,是在建立用戶時分配的。使用chsh命令能夠改變默認的shell。示例以下所示:express
chsh <username> -s <shell>
能夠定義以下兩種類型的變量vim
能夠有兩種實現方法:數組
2>&1
&>
示例以下:bash
if [ 條件 ] then; command ... else if [ 條件 ] then; command... else command... fi fi
「$?」能夠來檢查前一命令的結束狀態,一般」0」表示成功,」1-255」表示運行失敗函數
可使用 、 -ne-eq`來進行比較。-gt-lt`` 、、
break命令一個簡單的用途是退出執行中的循環。咱們能夠在while和until循環中使用break命令跳出循環
continue命令不一樣於break命令,它只跳出當前循環的迭代,而不是整個循環。continue命令不少時候是頗有用的,例如錯誤發生,但咱們依然但願
一般賦予腳本執行權限或使用bash命令調用,以下所示:
chmod +x script.sh
bash script.sh
以下格式: #!/bin/bash # #auther: magedu #description:This is scripts 腳本主體
一般使用bash 命令中 參數來執行腳本,以下格式:-x
bash -x script.sh
以下格式:
#!/bin/bash A="mageu" B="magedu" [[ "$A" == "$B" ]] && echo "字符串相同" || echo "字符串不一樣"
$0
: 命令行中的腳本名字$1..$9
: 腳本可接受的參數個數$#
: 命令行參數的數量$*
: 全部命令參數,轉換爲一個字符串$@
: 全部命令參數,轉換爲一個字符串-d
: 文件是否存在且是目錄-e
: 文件是否存在-f
: 文件是否存在且是普通文件-r
: 文件存在且是否可讀-s
: 文件存在且不爲空-w
: 文件存在且可寫-x
: 文件存在且可執行以下示例:工具
#!/bin/bash # #auther: mage team # read -p "Please Enter Your Chooice: " STR echo "${STR}
unset $VAR
VAR=
有以下三種方法:測試
let i++
expr 1 + 2
$[ 2 + 3]
$(($num1 + $num2))
方法一:ui
func_name() { func body ... }
方法二:spa
function func_name(){ func body ... }
VAR=$(echo "options;expression" | bc)
以下操做步驟
ESC + :
,進入命令模式;set list
使用命令來獲取,以下格式:trap
#!/bin/bash # auther: mage team trap 'echo "quit";exit1' INT
有以下方式:
declare -a NAME
: 申明一個索引數組declare -A NAME
: 申明一個關聯數組可使用以下方式來引用:
${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
能夠在腳本中計算
#!/bin/bash # auther : mage team # file_list=(`ls /www/log/access_log/`) NUM= $[ ${#file_list[*]} - 1 ] echo "$NUM"
有以下兩種方式:
$VAR_NAME
${VAR_NAME}