Ubuntuのシンプルなコマンドで現在の場所に新しいターミナルウィンドウを開きたい
gnome-terminal --working-directory=`pwd` & disown
仕事はいいですね。しかし、bashrcにエイリアスを置くと
alias clone="gnome-terminal --working-directory=`pwd` & disown "
pwd
開始時に計算されます。だから私は次のようなものを得る。
$ type clone
clone is aliased to `gnome-terminal --working-directory=/home/user & disown '
エイリアスを呼び出すときにのみpwd
を計算させることは可能ですか?または、エイリアス以外のbash関数を記述する必要がありますか?
alias
宣言コマンドを単一引用符で囲んで、宣言中にコマンド置換(pwd
)が実行されないようにします(エイリアスが呼び出されたときにのみ展開されます)。
_alias clone='gnome-terminal --working-directory=`pwd` & disown'
_
また、古い問題のある_``
_の代わりに、コマンド置換構文$()
の使用を開始します。
_alias clone='gnome-terminal --working-directory="$(pwd)" & disown'
_
また、_gnome-terminal
_は次のように設計されていることに注意してください。
_gnome-terminal
_
元のPIDと同じPIDで新しいウィンドウが開きます。これは、設計上同じプロセスであり、一方を終了しても他方は終了しないためです。したがって、disown
とバックグラウンド(_&
_)は必要ありません。
_alias clone='gnome-terminal --working-directory="$(pwd)"'
_
するだろう。
さらに、@ Digital Traumaが指摘したように、_gnome-terminal
_は常に現在の作業ディレクトリから開始されるため、pwd
として設定するので_--working-directory
_は必要ありません。だからあなたはちょうどすることができます:
_alias clone='gnome-terminal'
_