别名 zsh: `do' 附近的解析错误
alias zsh: parse error near `do'
我遇到了 zsh
.
的别名问题
我的 .zprofile
文件中有这个别名:alias cleanimg="for i in `docker images | grep '<none>' | awk '{print }'`; do; docker rmi -f $i; done"
.
当我的终端 运行 cleanimg
出现此错误时:zsh: parse error near `do'
.
我试图删除 do
关键字后的 ;
,但没有解决问题。
但是,如果我直接从终端执行代码,该别名将正确运行。
谁能帮我解决这个语法错误?
提前致谢。
你的for循环中多了一个分号,修改为-
alias cleanimg="for i in
docker 张图片 | grep '' | awk '{print $3}'; do docker rmi -f $i; done"
不要尝试为此使用别名;使用函数。
cleanimg () {
for i in $(docker images | awk '/<none>/ {print }'); do
docker rmi -f "$i"
done
}
这使您不必获得正确的引用,以便命令替换在 used 别名而不是 defined[=] 时运行26=].
(此外,grep | awk
管道几乎总是可以单独使用 awk
来实现。)
(我还想知道您是否可以使用 --filters
选项代替 awk
和循环;也许 docker rmi -f $(docker images -q -f "dangling=true")
?)
如果您只想清理 docker 图像,您可以像这样设置别名:
alias cleanimg='docker rmi -f $(docker images -q -f "dangling=true")'
子命令 docker images -q -f "dangling=true"
return 删除所有你的 id 因为 docker rmi
接受参数你可以直接传递它们
我遇到了 zsh
.
我的 .zprofile
文件中有这个别名:alias cleanimg="for i in `docker images | grep '<none>' | awk '{print }'`; do; docker rmi -f $i; done"
.
当我的终端 运行 cleanimg
出现此错误时:zsh: parse error near `do'
.
我试图删除 do
关键字后的 ;
,但没有解决问题。
但是,如果我直接从终端执行代码,该别名将正确运行。
谁能帮我解决这个语法错误?
提前致谢。
你的for循环中多了一个分号,修改为-
alias cleanimg="for i in
docker 张图片 | grep '' | awk '{print $3}'; do docker rmi -f $i; done"
不要尝试为此使用别名;使用函数。
cleanimg () {
for i in $(docker images | awk '/<none>/ {print }'); do
docker rmi -f "$i"
done
}
这使您不必获得正确的引用,以便命令替换在 used 别名而不是 defined[=] 时运行26=].
(此外,grep | awk
管道几乎总是可以单独使用 awk
来实现。)
(我还想知道您是否可以使用 --filters
选项代替 awk
和循环;也许 docker rmi -f $(docker images -q -f "dangling=true")
?)
如果您只想清理 docker 图像,您可以像这样设置别名:
alias cleanimg='docker rmi -f $(docker images -q -f "dangling=true")'
子命令 docker images -q -f "dangling=true"
return 删除所有你的 id 因为 docker rmi
接受参数你可以直接传递它们