【问题标题】:Execute Commands With Pipe Using SSH command使用 SSH 命令使用管道执行命令
【发布时间】:2020-03-08 22:13:08
【问题描述】:

我正在使用 bash 脚本在 SSH 之后使用管道执行命令行。

我想做这个流程:

-> ssh 到服务器(使用密钥)

-> 转到特定目录

->more file.txt | grep string.

.

所以,我在下面使用这个脚本:

ssh -i key.txt user@address -p 22 "cd /some/path/to/directory ; more file.txt ; grep string "

但是,它不是 grep 字符串,而是只执行 more file.txt

SSH 后如何使用管道执行命令?

【问题讨论】:

  • 你试过ssh -i key.txt user@address -p 22 "cd /some/path/to/directory ; grep string file.txt" 吗?
  • 嗨,anishsane,是的,我做到了,但它不起作用。
  • 看起来您打算在more file.txtgrep string 之间键入| 字符而不是;
  • @ferori :将寻呼机 (more) 的输出馈送到另一个程序的标准输入是没有意义的。如果more 正在查看的文件的行数少于终端大小,则它将简单地充当cat。此外,我没有看到您在您发布的单行-ssh-脚本中使用任何管道。

标签: bash ssh command-line


【解决方案1】:

在您的情况下,您不需要执行这一系列操作。试试这个:

ssh -i key.txt user@address -p 22 "grep string /some/path/to/directory/file.txt"

【讨论】: