2015-07-04 71 views
1

我需要在本地运行一些命令,然后在远程机器上执行一些命令,所有命令都使用一个本地bash脚本。在远程机器上运行bash脚本的一部分

为了简单起见,我只想说我想在我的本地台式机上执行以下操作并执行它。

#!/bin/bash 

#upload some files to a remote machine 
cd /tmp 
./upload-files.sh 

#run commands on remote machine 
ssh myuser:[email protected] 
cd /tmp/uploads <--- these commands don't run in the ssh connection 
./process-uploads.sh 
exit 

#run command locally again. 
cd - 
echo 'complete!' 

任何想法如何做到这一点?

回答

1

您可以使用here-docssh命令:

#!/bin/bash 

#upload some files to a remote machine 
cd /tmp 
./upload-files.sh 

#run commands on remote machine 
ssh -t -t myuser:[email protected]<<EOF 
cd /tmp/uploads 
./process-uploads.sh 
exit 
EOF 

#run command locally again. 
cd - 
echo 'complete!' 
+0

我需要双'-t -t'? – jax

+0

单个'-t'我得到了警告**由于stdin不是终端,所以不会分配伪终端** – anubhava

+0

好吧,只是检查它不是拼写错误。 – jax

相关问题