ratednitesh
ratednitesh

Reputation: 258

SSH : Remotely run a script and stay there

I wish to run a script on the remote system and then wish to stay there. Running following script:-

ssh user@remote logs.sh

This do run the script but after that I am back to my host system. i need to stay on remote one. I tried with..

ssh user@remote logs.sh;bash -l

somehow it solves the problem but still not working exactly as a fresh login as the command:-

ssh user@remote

Or it will be better if i could include something in my script that would open the bash terminal in the same directory where the script was running. Please suggest.

Upvotes: 15

Views: 15101

Answers (1)

John1024
John1024

Reputation: 113904

Try this:

ssh -t user@remote 'logs.sh; bash -l'

The quotes are needed to pass both commands to ssh. The -t option forces a pseudo-tty allocation.

Discussion

Consider:

ssh user@remote logs.sh;bash -l

When the shell parses this line, it splits it into two commands. The first is:

ssh user@remote logs.sh

This runs logs.sh on the remote machine. The second command is:

bash -l

This opens a login shell on the local machine.

The quotes were added above to prevent the shell from splitting up the commands this way.

Upvotes: 18

Related Questions