I am creating a Unix .bash_profile script, and I have run into a small problem. Here is a snippet of my code:
echo -n "Welcome "
whoami
echo -n "!"
I would like the output to give something like this:
Welcome jsmith!
... instead, I am getting something like this:
Welcome jsmith
!
How can I get all of this onto one line? Any help is greatly appreciated. If this helps, I am using the Bash Shell, on Ubuntu Server 10.04 LTS.
You can do something like:
You can insert
$(command)
(new style) or`command`
(old style) to insert the output of a command into a double-quoted string.Note: In a script this will work fine. If you try it at an interactive command line the final
!
may cause you trouble as!
triggers history expansion.You probably want:
The
$()
construct executes the command inside it, and evaluates to the output of it.Another option would be:
Although that's a bit mad.
Whatever you do, you might need single quotes around the
!
. In my shell,!
is a history metacharacter even inside double quotes.Use this form. Get rid of
echo
and get away from creating a subshell.Try this:
OR