shell腳本

shell執行腳本是一門解釋性語言、批量化處理語言,大大的節省了工做成本css

shell腳本第一行必須以 #!開頭,它表示該腳本使用後面的解釋器解釋執行。python

#!/bin/bashnginx

1.常見的通配符:docker

* : 匹配0個或多個任意字符shell

? : 匹配一個任意字符swift

[若干字符] : 匹配方括號中任意一個字符的一次出現bash

2.命令代換:
反引號``  或者  $()測試

//查某個容器的編號,賦值給num變量spa

num=$(docker ps -a | grep -i "test" | awk '{print$1}')code

3.單引號和雙引號

Shell腳本中的單引號和雙引號同樣都是字符串的界定符,單引號用於保持引號內全部字符的字面值,而雙引號有些狀況則特殊。若是字符串中有特殊字符須要處理時就用雙引號。

注:單引號標註的字符中不能再出現單引號。

 4.條件判斷 流程控制
  "if" 表達式 若是條件爲真則執行then後面的部分:
if ....; then
  ....
elif ....; then
  ....
else
  ....
fi

一般用" [ ] "來表示條件測試。注意這裏的空格很重要。要確保方括號的空格。
[ -f "somefile" ] :判斷是不是一個文件
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行權限
[ -n "$var" ] :判斷$var變量是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等

例如:

#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]; then
 echo "your login shell is the bash (bourne again shell)"
else
 echo "your login shell is not bash but $SHELL"
fi

5.輸出變量前加$。例如:echo $num 或者明確一些 echo ${num}

6.執行shell腳本。先修改腳本權限增長可執行:chmod +x filename

而後,您能夠經過輸入: ./filename 來執行您的腳本。或者sh filename

7.SED 命令,替換數據

1.把開頭/結尾爲str1的行替換爲str2:

sed -i 's/^str1.*/str2/' filename ###以str1開頭 sed -i 's/.*str1$/str2/' filename ###以str1結尾 sed -i 's/.*str1.*/str2/' filename ###含有str1
sed -i 's/舊字符串/新字符串/g' filename

2.將文件中含 "arr" 字符串的數據行中的 "str1" 字符串 , 替換成爲 "str2" 字符串:

sed -e '/arr/s/str1/str2/g' filename ##含有g說明是全局替換

3.將文件中第 5 行數據 , 替換成句子"hello world!!!"

sed -e '5c\hello world!!!' filename

4.將文件中 1 至 100 行 , 替換成以下兩行:

how are you?
my name is feige.

命令以下:

sed -e '1,100c\ How are you?\ my name is feige. ' filename

刪除數據

1.刪除空行:

sed -e '/^ *$/d' filename ### *號前面有一個空格符哦~

2.刪除含有指定字符串str的行:

sed -f '/str/d' filename

移動數據

1.將文件中的前 100 數據 , 搬到文件中第 300 後輸出。其命令以下:

sed -f mov.txt targetfile ## targetfile是要操做的文件,mov.txt裏面放的是操做指令

其中mov.txt文檔的內容爲:

1,100{
H
d
}
300G

2.將from.txt文件中含 "phi" 字符串的數據行 , 移動到to.txt文件中儲存。其命令以下:

sed -e '/phi/w to.txt' from.txt

3.將 from.txt文件內容 , 移動至to.txt文件中含 "beta" 字符串的數據行。其命令以下:

sed -e '/beta/r from.txt' to.txt

搜索數據

1.將文件中含 "omega" 字符串的數據輸出:

sed -f grep.txt targetfile

其中grep.txt的內容以下:

/omega/b N h s/.*\n// /omega/b g D
相關文章
相關標籤/搜索