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}' 处理过的cleanImages.sh1 #!/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}'`