如何在bash脚本中通过ssh编辑文件

时间:2020-07-02 01:14:03

标签: bash shell

我正在尝试编写一个BASH脚本,该脚本将执行以下操作

  1. SSH到远程计算机
  2. 移动到目录
  3. 打开文件进行编辑
  4. 用户编辑文件后,继续其他命令

我知道可以通过执行ssh server "cmds"来完成第1步和第2步,但这对第3步无效,因为它不显示正在发生的事情。

我该如何实现?

2 个答案:

答案 0 :(得分:1)

这对您不起作用吗?:

ssh -t user@server "cd /folder/; nano somefile; execute_a_command_once_nano_is_closed"

nanojoevivim是通过控制台工作的文本编辑器,您可以与它们进行交互

如果可以或想要自动进​​行编辑,则可以使用sedawk进行文件的编辑/操作,而完全不使用交互式编辑器。

答案 1 :(得分:0)

您可以尝试:

ssh root@<your_server> "sed -i 's/cat/dog/g' /tmp/test_file"

来自: 猫/ tmp / test_file #这是一个测试文件,将被编辑 猫

至: 猫/ tmp / test_file #这是一个测试文件,将被编辑 狗

注意:我建议您设置ssh无密码,这样,无论您执行ssh命令还是希望查看ansible,您都不会输入密码