Reputation: 258
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
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.
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