views:

218

answers:

1

Hi. I made a script that spawns a remote shell or runs a local shell whether it's on the current machine or not:

#!/bin/bash
# By:  benoror <[email protected]>
#
# spawns a remote shell or runs a local shell whether it's on the current machine or not
# $1 = hostname

if [ "$(hostname)" == "$1" ]; then
    bash
else
    ssh "$1.local"
fi

For example, if I'm on server1:

./spawnshell.sh server1   -> runs bash
./spawnshell.sh server2   -> ssh to server2.local

I want that script to run automatically in separate tabs in GNU Screen, but I can't make it run, my .screenrc:

...
screen -t "@server1"  1   exec /home/benoror/scripts/spawnshell.sh server1
screen -t "@server2"  2   exec /home/benoror/scripts/spawnshell.sh server2
...

But it doesn't works, I've tried without 'exec', with -X option and a lot more. Any ideas ?

+1  A: 

I use the following:

screen -t gmail alpine -i -p $HOME/.pinerc-gmail
screen -t work  alpine -i -p $HOME/.pinerc-work

And that works great. What are the 1 and 2 for? Have you tried removing them?

Could you try it using another program than spawnshell? Maybe start up vim and emacs? If those work, then your script is at fault and not your screenrc.

valadil