これはxtermで動作します(参照https://unix.stackexchange.com/a/739977/119816)
xterm -e "echo hello; bash"
しかし、そうではありませんgnome-terminal
。これを行う同等の方法は何ですかgnome-terminal
?
gnome-terminal -- "echo hello; bash"
私はさまざまな引用方法を試しましたが、成功しませんでした。いくつかの試みは次のとおりです。
gnome-terminal -- "bash -c \"echo hello; bash\""
#
gnome-terminal -- /usr/bin/bash /tmp/echo-hi
/tmp/echo-hi
hiをエコーするシェルスクリプトはどこにありますか?
そして他のいくつかの変形。
答え1
bash -c
引用符には表示しないでください。
以下を試してください。
gnome-terminal -- bash -c "echo hello; bash"
私は次の例を使用しています:
gnome-terminal --window --title "neovim" -- sh -c "nvim"
これは単に「neovim」というタイトルの新しいgnome端末ウィンドウでnvim
バイナリを実行します。sh
私の場合は、sh
バイナリへのリンクだけですbash
。したがって、基本的にここで必要なシェルバイナリを使用できます。
答え2
これは働きます:
gnome-terminal -- bash -c "echo hello; exec bash"
重要な点は次のとおりです。
GNOMEはデュアルダッシュを使用して、
--
実行するコマンドとGNOME端末パラメータを区別します。複数のコマンドを実行するには、理由を渡して
bash -c
実行する必要があります。echo hello; exec bash
こんにちは出力してから、元のbashを対話型端末になる新しいbashに置き換えます。