【问题标题】:zsh command with bad local forwarding [closed]本地转发错误的 zsh 命令 [关闭]
【发布时间】: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} 的缩写。大括号防止 : 被识别为扩展的一部分。
  • 也就是说,我不认为使用localhosthost 组件有效,只有绑定地址。
  • 这能回答你的问题吗? Colon with 'r' in string not working as desired under zsh(只需将 :r 替换为 :l ,这也是你的问题)

标签: unix ssh cluster-computing zsh


【解决方案1】:

端口转发格式错误。应该是这样的:

ssh -L local_port:destination_server_ip:remote_port

所以在你的情况下应该是:

ssh -L $2:localhost:$1  cluster_name

【讨论】:

  • 您仍然需要${2}:localhost:$1 以避免触发zsh$2:l 的历史风格扩展。
猜你喜欢
  • 2022-01-02
  • 2021-11-27
  • 2013-08-28
  • 2020-02-12
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
相关资源
最近更新 更多