redirect到始发服务器

以下是按预期工作。 唯一的问题是它不会返回源服务器命令提示符,除非我按Ctrl + C

[abc@server]$ 0</dev/null echo "ls" | ssh -t -t [email protected] "sh" tcgetattr: Invalid argument sh-3.2$ xyz.tar.gz sh-3.2$ Killed by signal 2. [abc@server]$ 

我想在shell脚本中使用它。

为什么不:

 $ ssh -t -t [email protected] 'ls && exit' 

实际的命令是echo "file.txt" | ssh -t -t echo "file.txt" | ssh -t -t

我想你的意思是cat file.txtfile.txt包含你想在远程服务器上执行的所有命令),如果是这样的话,只需在这个文件的末尾添加exit可以了:

 $ sed '$a exit' file.txt | ssh -t -t [email protected] 
  • $用于表示最后一行
  • a代表追加