在ssh之后更改用户并执行多个命令

我有一个简单的shell脚本作为普通用户login,这个普通用户有一个shell准备好切换到具有sudo权限的用户。 但是,我不能得到它的工作:

sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host "sudo -s -u SUDOUSER;sudo cp -r "${STAGING}/${THEME}/*" /opt/themes/"${THEME}/.";exit;rm -rf "${STAGING}/*"" 

这使我login到服务器正常,然后切换到SUDOUSER,但实际上只是停在那里,并提示我作为SUDOUSER在主机上(基本上我login到SUDOUSER在服务器上,并等待命令)

我需要脚本运行并返回到我的始发terminal完成cp和rm任务。

有人可以帮忙吗?

谢谢

这似乎很大程度上是一个引用问题。 尝试这个:

 sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host \ "sudo -s -u SUDOUSER '\ cp -r \"${STAGING}/${THEME}/*\" /opt/themes/\"${THEME}/.\"; \ rm -rf \"${STAGING}/*\"'" 

我假设$STAGING$THEME是你的本地shell中的variables。