I want to open new конечный простой window in current location by command in Ubuntu
gnome-terminal --working-directory=`pwd` & disown
Work's nice for я. But when I удар в лунку иначе 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
вычисли тебя only when i call иначе. Or I need to write bash function except иначе?
Просто используйте одинарные кавычки вокруг alias
команда объявления так, чтобы замена команды (pwd
) не происходит при объявлении (и расширится только, когда псевдоним называют):
alias clone='gnome-terminal --working-directory=`pwd` & disown'
Также начните использовать синтаксис замены команды $()
вместо более старого и проблематичного ``
:
alias clone='gnome-terminal --working-directory="$(pwd)" & disown'
Также отметьте это gnome-terminal
разработан таким способом это каждый раз, когда Вы делаете
gnome-terminal
это открыло бы новое окно с тем же PID как исходный. Это вызвано тем, что это - тот же процесс дизайном, выходя каждый не уничтожит другой (s). Таким образом, Вам не нужно disown
и фоновая обработка (&
), просто:
alias clone='gnome-terminal --working-directory="$(pwd)"'
сделал бы.
Кроме того, как указано @Digital Травмой, gnome-terminal
всегда начинается в текущем рабочем каталоге, таким образом, --working-directory
не нужно, поскольку Вы устанавливаете его как pwd
. Таким образом, можно просто сделать:
alias clone='gnome-terminal'