Bash Tips: Set Remote Variables

Annika Backstrom
in misc, on 20 December 2004. It is tagged #Computers, #Linux, and #Scripting.

As I've mentioned, I'm now on DreamHost. It's pretty dreamy (as you might expect), but [screen][] is not allowed. This is a slight inconvenience, since I rather like screen and use it constantly. Plan B involves running screen locally and SSH'ing to DreamHost in every window, but I lose my tailored bash prompt. Normally, my prompt looks like this:


I can immediately tell that screen is running, as well as my window number. This breaks down as soon as I SSH to DreamHost. I get a far more generic prompt:


So, what to do? Set a variable on the remote side, in a roundabout sort of way:

ssh -t 'export MYVAR=myvalue &&
    exec /bin/bash --login'

It doesn't look like much. It took me an hour to assemble. SSH to the host, allocating a TTY with -t. Run bash on the remote side as a login shell, executing the specified command. Export a variable, and exec a sub-bash.

Yeah, that's it.

Update 12/15/2005: Trimmed the command a bit: the outer /bin/bash call is unnecessary.{@class=update}