#/bin/bash tag=20180816 img1=hub.chinacloud.com.cn/onex.dev/one-task-scheduler:$tag img2=hub.chinacloud.com.cn/onex.dev/one-route:$tag img3=hub.chinacloud.com.cn/onex.dev/one-infrastructure-api:$tag img4=hub.chinacloud.com.cn/onex.dev/one-logging-api:$tag img5=hub.chinacloud.com.cn/onex.dev/one-config:pro-$tag img6=hub.chinacloud.com.cn/onex.dev/keycloak:3.4.0.Final.$tag img7=hub.chinacloud.com.cn/onex.dev/one-registry:$tag img8=hub.chinacloud.com.cn/fast-wh.dev/whitehole-business:$tag img9=hub.chinacloud.com.cn/fast-wh.dev/whitehole-event:$tag img10=hub.chinacloud.com.cn/fast-wh.dev/whitehole-flow:$tag img11=hub.chinacloud.com.cn/fast-pulsar.dev/westoneui-all-in-one:$tag img12=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar-ui:$tag img13=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar:$tag img14=hub.chinacloud.com.cn/fast-pulsar.dev/pulsar-sidecar:$tag images=($img1 $img2 $img3 $img4 $img5 $img6 $img7 $img8 $img9 $img10 $img11 $img12 $img13 $img14) for each in ${images[@]}; do docker pull $each array=(${each//\// }) for var in ${array[@]}; do if [[ $var =~ ":" ]]; then tar=`echo $var | cut -d ':' -f 1` docker save -o ${tar}.tar $each tar cjvf ${tar}.tbz ${tar}.tar rm -rf ${tar}.tar fi done done
一、(${each//\// }) 將字符串按/ 進行拆分,寫成\/主要是是/的轉義字符,按什麼拆分能夠寫成 (${each//分割符/}),好比下面按 "-"進行拆分docker
a="one-two-three-four" #要將$a分割開,能夠這樣:" arr=(${a//-/ }) for s in ${arr[@]} do echo "$s" done
執行後顯示:shell
one two three four
二、若是匹配冒號api
if [[ $var =~ ":" ]];bash
上面這句的意思是若是$var表示的字符串中匹配 「:」。ide
好比面的例子ui
$ cat 123.sh #!/bin/bash read -p "Please type :" x if [[ $x =~ "[0-9]" ]];then echo "yes" else echo "no" fi $ ./123.sh Please type :1 yes $ ./123.sh Please type :f no
三、cut用法spa
cut語法 [root@www ~]# cut -d'分隔字符' -f fields <==用於有特定分隔字符 [root@www ~]# cut -c 字符區間 <==用於排列整齊的信息 選項與參數: -d :後面接分隔字符。與 -f 一塊兒使用; -f :依據 -d 的分隔字符將一段信息分割成爲數段,用 -f 取出第幾段的意思; -c :以字符 (characters) 的單位取出固定字符區間; PATH 變量以下 [root@www ~]# echo $PATH /bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games # 1 | 2 | 3 | 4 | 5 | 6 | 7 將 PATH 變量取出,我要找出第五個路徑。 #echo $PATH | cut -d ':' -f 5 /usr/local/bin 將 PATH 變量取出,我要找出第三和第五個路徑。 #echo $PATH | cut -d ':' -f 3,5 /sbin:/usr/local/bin 將 PATH 變量取出,我要找出第三到最後一個路徑。 echo $PATH | cut -d ':' -f 3- /sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games 將 PATH 變量取出,我要找出第一到第三個路徑。 #echo $PATH | cut -d ':' -f 1-3 /bin:/usr/bin:/sbin: 將 PATH 變量取出,我要找出第一到第三,還有第五個路徑。 echo $PATH | cut -d ':' -f 1-3,5 /bin:/usr/bin:/sbin:/usr/local/bin 實用例子:只顯示/etc/passwd的用戶和shell #cat /etc/passwd | cut -d ':' -f 1,7 root:/bin/bash daemon:/bin/sh bin:/bin/sh