【发布时间】:2021-12-13 00:50:45
【问题描述】:
我正在尝试创建一个终端命令来自动连接到集群,并在我的 .zsh 文件中包含以下内容
function access_cluster(){
ssh -N -f -L localhost:$2:localhost:$1 [cluster name] }
但是,当我从终端运行 access_cluster 7777 9999 时,我收到以下消息:
Bad local forwarding specification 'localhost:9999ocalhost:7777
zsh 似乎忽略了我的命令中的 :l,我该如何解决这个问题?我正在运行 macOS Big Sur 11.3.1
【问题讨论】:
-
只需使用 '${2}' 和 '${1}'
-
我将行改为
ssh -N -f -L localhost:${2}:localhost:${1} [name]并得到相同的错误消息 -
:l被解释为小写运算符。试试x=FOO; echo $x:l。如果将大括号放在参数名称周围,它应该起作用,因为$2:l是${2:l}的缩写。大括号防止:被识别为扩展的一部分。 -
也就是说,我不认为使用
localhost对host组件有效,只有绑定地址。 -
这能回答你的问题吗? Colon with 'r' in string not working as desired under zsh(只需将 :r 替换为 :l ,这也是你的问题)
标签: unix ssh cluster-computing zsh