I want to open new terminal window in current location by simple command in Ubuntu
gnome-terminal --working-directory=`pwd` & disown
Work's nice for me. But when I put alias to bashrc
alias clone="gnome-terminal --working-directory=`pwd` & disown "
pwd
Calculated at start. So i get something like.
$ type clone
clone is aliased to `gnome-terminal --working-directory=/home/user & disown '
Is it possible make pwd
calculate only when i call alias. Or I need to write bash function except alias?
Best Answer
Just use single quotes around the
alias
declaration command so that the command substitution (pwd
) does not take place while declaring (and will expand only when the alias is called):Also start using command substitution syntax
$()
instead of older and problematic``
:Also note that
gnome-terminal
is designed in such a manner that whenever you doit would open a new window with the same PID as the original one. This is because its the same process by design, exiting one won't kill the other(s). So you don't need the
disown
and backgrounding (&
), just:would do.
Moreover, as pointed out by @Digital Trauma,
gnome-terminal
always starts off at current working directory, so--working-directory
is not needed as you are setting it aspwd
. So you can just do: