【问题标题】:Breaking up a long unix command?分解一个长的unix命令?
【发布时间】:2012-10-13 21:41:46
【问题描述】:

我通过 SSH 从 C# 向一个 unix 机器发送了一个很长的命令,而且该命令似乎运行时间很长。我读到你可以通过 [enter] 来逃避它,但我有一些引语恶作剧会继续说不匹配的引语。

示例命令:

tibrvsend "Destination" "really really long string"

完全不发送

tibrvsend "Destination" "really really\

long string"

有不匹配的“错误。

我确定这很简单,你们能帮帮我吗?

谢谢!

【问题讨论】:

  • C#中没有字符串连接运算符吗?
  • @larsmans 问题不在于 C# 方面,它让长字符串在 unix 机器上运行......我猜它实际上更像是一个 unix 问题
  • 你的意思是你从对方那里得到了一条错误信息?如果有,请发布。
  • @larsmans 是的 unmatched " 错误在 unix 端:Unmatched ".
  • 这并不意味着字符串太长。这意味着您以错误的方式引用它。

标签: c# unix ssh


【解决方案1】:

如果您的 SSH 会话是持久的,您可以声明一个 shell 脚本变量(例如 $myvar='string'),然后在多个命令中将该(长)字符串的其他部分连接到字符串的末尾,然后通过传递将该变量发送给它,而不是将整个字符串发送给它。

【讨论】:

  • 所以我认为问题在于提示符下一个 unix 命令的上限是 500 个字符,这会解决这个问题吗?
  • 这取决于你连接的shell类型,但通过这种方法你可以确定它会工作。您还可以创建一个变量来确定字符串的拆分大小,以确保它在远程环境更改的情况下工作。
  • 请记住,您必须在整个期间保持 shell 会话处于活动状态。
猜你喜欢
  • 2012-02-20
  • 2010-12-26
  • 2011-12-11
  • 1970-01-01
  • 2018-06-03
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
相关资源
最近更新 更多