作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
我是一名优秀的程序员,十分优秀!