gpt4 book ai didi

variables - 解压变量中的字符串

转载 作者:行者123 更新时间:2023-12-02 07:59:31 25 4
gpt4 key购买 nike

在 Bash 中,我可以使用以下代码:

[ "$sshcmd" = "" ] && sshcmd="ssh -someopts myhost"

$sshcmd "echo hello world"

在 ZSH 中,相同的代码不起作用,因为它尝试查找“ssh -someopts myhost”可执行文件。我怎样才能在 ZSH 中做同样的事情?

谢谢,艾伯特

最佳答案

像其他 shell 一样在空格处分割字符串(更一般地说,在 $IFS 处):$=sshcmd

但是您应该将 sshcmd 设为一个数组,以便在其中一个选项包含空格时您的命令仍然有效:

sshcmd=(ssh -someopts myopts)
$sshcmd[@] "echo hello world"

顺便说一句,这也适用于 bash 和 ksh;但您还必须保护数组变量替换,防止进一步拆分和文件名扩展:

sshcmd=(ssh -someopts myopts)
"${sshcmd[@]}" "echo hello world"

关于variables - 解压变量中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com