我在一个有很多 tcsh 配置脚本的系统上工作,要求我通过 tcsh 运行大多数程序。我试图通过将其添加到我的 ~/.zshrc
中来使这对我自己变得容易:
# run command in tcsh
function t() {
tcsh -c "$@"
}
这适用于 t ls
之类的东西,但对 t ls -l
无效,它会给出错误 Unknown option: `-l' Usage: tcsh ...
,并且显然将 -l
作为参数传递给 tcsh
,而不是传递给 ls
。
如何引用 $@
中传递的字符串?
最佳答案
Zsh 对此有一个特殊选项(不是 bash):${(q)}
:
tcsh -c "${(j. .)${(q)@}}"
.第一个 (${(q)@}
) 转义 $@
数组项中具有特殊含义的所有字符,第二个 (${(j. .) …}
) 将数组连接成一个字符串。
关于bash - 如何将 bash/zsh 参数转发到另一个 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818669/