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.sh
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}'`