將批量指定的docker鏡像打成文件

 
#/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 
相關文章
相關標籤/搜索