zsh 使用变量编写命令

zsh compose command using variable

以下 bashzsh 中的等价物是什么?

export del='--timeout=0 --wait=0 --force'
kubectl delete pod testpod $del

bash 中执行它 return 正确的命令没有问题,而在 zsh 中执行的命令是 returning:

Error: invalid argument "0 --wait=0 --force" for "--timeout" flag: time: unknown unit " --wait=" in duration "0 --wait=0 --force"

因为这将用于编写重复命令,所以应该很容易复制。

当前的解决方案但“太长”无法作为答案:

echo $del | xargs kubectl delete pod testpod
eval kubectl delete pod testpod $del 
kubectl delete pod testpod ${=del} 

试试 xargs:

echo $del | xargs kubectl delete pod testpod

在 zsh 中你会写

kubectl delete pod testpod ${(z)del}

(z) 告诉 zsh 对参数进行分词。

我找到的更快的解决方案是默认为工作拆分变量启用 zsh 标志,因为 bash 通常是这样做的

setopt SH_WORD_SPLIT
kubectl delete pod testpod $del

这样我就可以使用bash的名字形式 感谢@user1934428 给我正确的提示