我遇到了 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
}
这使您不必正确引用,以便在使用别名时运行命令替换,而不是在定义别名时运行。
(此外,grep | awk
管道几乎总是可以单独使用 awk
来实现。)
(我还想知道您是否可以使用 --filters
选项来省去 awk
和循环;也许 docker rmi -f $(docker images -q -f "dangling=true")
?)
关于terminal - 别名 zsh : parse error near `do' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249586/