加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

变量 – 在变量中解压缩字符串

发布时间:2020-12-14 02:11:58 所属栏目:Linux 来源:网络整理
导读:在 Bash中,我可以使用以下代码: [ "$sshcmd" = "" ] sshcmd="ssh -someopts myhost"$sshcmd "echo hello world" 在ZSH中,相同的代码不起作用,因为它试图找到“ssh -someopts myhost”可执行文件.我怎样才能在ZSH中做同样的事情? 谢谢,艾伯特 解决方法 要像
在 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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读