Cle*_*ent 2 terminal alias zsh parse-error
我遇到了 的别名问题zsh。
.zprofile我的文件中有这个别名: alias cleanimg="for i in `docker images | grep '<none>' | awk '{print $3}'`; do; docker rmi -f $i; done".
从我的终端运行时,cleanimg我收到此错误:zsh: parse error near `do'。
我尝试删除关键字;后面的右侧do,但它没有解决问题。但是,如果我直接从终端执行代码,该别名会正确运行。
有人可以帮我解决这个语法错误吗?
提前致谢。
不要尝试为此使用别名;使用一个函数。
cleanimg () {
for i in $(docker images | awk '/<none>/ {print $3}'); do
docker rmi -f "$i"
done
}
Run Code Online (Sandbox Code Playgroud)
这使您不必正确引用,以便在使用别名时而不是在定义别名时运行命令替换。
(此外,grep | awk管道几乎总是可以awk单独使用来实现。)
(我还想知道您是否可以使用该选项来省去awk和循环--filters;也许docker rmi -f $(docker images -q -f "dangling=true")?)