docker ps | grep portal | awk '{print $2}' | cut -d ":" -f3

used=`docker ps | grep portal | awk '{print $2}' | cut -d ":" -f3`
echo $used
docker images | grep portal | grep -v $used | awk '{print $3}'
1 #!/bin/bash
2 i=0
3 using=`docker ps | grep portal | awk '{print $2}' | cut -d ":" -f3`
4 echo "using image is $using"
5 for line in `docker images | grep portal | grep -v $using | awk '{print $3}'`
6 do
7 noUsed[${i}]=$line
8 let i=${i}+1
9 done
10 for imageId in ${noUsed[*]}
11 do
12 docker rmi $imageId
13 echo "$imageId is deleted"
14 done
15 echo "clean finish"
shell 将指令傳回結果 賦給一個變量,用的是符号`,指派時等号左右不能有空格,變量名需要遵循使用者變量規範
使用使用者變量無需事先聲明,同時變量名的命名須遵循如下規則:
1). 首個字元必須為字母(a-z,A-Z);
2). 中間不能有空格,可以使用下劃線(_) ;
3). 不能使用标點符号 ;
4). 不能使用bash裡的關鍵字(可用help指令檢視保留關鍵字)
shell中管道兩側的指令是分别在兩個子shell中執行的,而子shell中定義的變量在父shell中是不可見的
docker rmi `docker images| grep process | awk '{print $3}'`