Bash脚本中的SSH + Sudo + Expect:在远程机器中使用sudo运行命令
我试图使用脚本自动部署一些.deb包。我想sudo dpkg -i $myDeb.deb在我可以使用ssh访问的远程机器列表中执行。 我试图在bash脚本中使用'expect'自动执行命令,但我显然做错了,因为我得到了许多不同的错误(取决于我把引号放在哪里,基本上) 这是我的功能(将通过以下方式调用:_remoteInstallation "myPackage115.deb" "192.168.1.55"。我知道在远程机器中,.deb将位于$ HOME / Documents /中: function _remoteInstallation(){ local retval=1 local debToInstall=$(basename "$1") local remoteMachine="$2" spawned=$(expect -d -c " set timeout 1800 spawn "/usr/bin/ssh -t borrajax@$remoteMachine /usr/bin/sudo /usr/bin/dpkg -i /home/borrajax/Documents/$debToInstall"' expect { \"Are you sure you want to continue connecting\" { send \"yes\r\"; exp_continue …