为什么zsh别名没有正确评估嵌套命令?

问题描述 投票:1回答:1

在我的〜/ .zshrc中我设置了一个别名

alias dkill="docker kill $(docker ps -q)"

但它实际上并不像命令本身那样运行。

由于某种原因,它尝试将容器名称作为命令执行,而不是将它们传递给docker kill命令。

Error response from daemon: Cannot kill container: 3f1xxxxx0c4: No such container: 3f1xxxxx0c4
zsh: command not found: 0aexxxxxx913
zsh: command not found: 46acxxxx75cd
zsh: command not found: 20f9xxxxx9c1
zsh: command not found: 63edxxxxc085
zsh: command not found: 6328xxxxfe4d

我应该如何重新定义别名以正确地杀死容器

docker zsh
1个回答
2
投票

正如@triplee所说,一旦你定义别名就会评估命令(当你打开zsh会话时,容器可能不存在)。

在你的.zshrc中使用一个函数:

function dkill { docker kill $(docker ps -q) }

或者使用单引号:

alias dkill='docker kill $(docker ps -q)'
© www.soinside.com 2019 - 2024. All rights reserved.