Linux 如何编写多行shell脚本

Linux 如何编写多行shell脚本,linux,shell,unix,shell-exec,Linux,Shell,Unix,Shell Exec,我有一台远程计算机,我想在那里替换文件的内容 我正在使用以下命令 ssh abc@host abc sed -i s/enable=false/enable=true/g /config/pqr.properties 其中abc是用户名和密码 如何将其放入shell脚本中?坏方法: 要编写脚本,需要将密码提供给ssh 正确的方法: 为ssh生成密钥并通过ssh密钥进行授权。您的命令如下所示: ssh abc@host 'sed -i s/enable=false/enable=true/g /

我有一台远程计算机,我想在那里替换文件的内容

我正在使用以下命令

ssh abc@host
abc
sed -i s/enable=false/enable=true/g /config/pqr.properties
其中abc是用户名和密码

如何将其放入shell脚本中?

坏方法:

要编写
脚本,需要将密码提供给ssh

正确的方法:

为ssh生成密钥并通过ssh密钥进行授权。您的命令如下所示:

ssh abc@host 'sed -i s/enable=false/enable=true/g /config/pqr.properties'

按此处所述设置授权密钥


sshuser@host命令
应随后在脚本中工作。

您可以使用
ssh。。。“command1;command2”
改用密钥对。如果这不是一个选项,你就需要使用expect。我已经把这个命令放在一个文件名abc中,现在当我执行它时,它不要求密码,但也不修改文件。我们有没有办法在外壳中提供密码?您是否制作了一个密钥并将其复制到目标服务器?我将使用的远程计算机是动态的,因此我无法将带有密钥的文件放在那里。因此,在这种情况下,您必须为ssh编写一个
expect
脚本(或仅通过谷歌搜索)。我已经编写了一个expect脚本,它对我有效。谢谢你的帮助。:)