回答:
Gnome-terminalはコマンドを実行するかシェルを開くことができますが、両方はできません。
コマンドをカプセル化することと、それに続くシェルの呼び出しを1つのコマンドに入れることにより、両方を行う回避策があります。
$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""
より多くの代替案については、スタックオーバーフローに関する同様の質問に対する私の答えを読んでください:https : //stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution/3531426#3531426
あなたが持っている場合xdotool
やwmctrl
インストール、その後、次のシェルスクリプトかもしれない仕事:
#!/usr/bin/env bash
window="$(xdotool search --class gnome-terminal | head -1)"
xdotool windowfocus $window
xdotool key ctrl+shift+t
xdotool type "$*"
xdotool key Return
私はこれを次のように使用します:
$ run-in-new-tab 'ls -l'
Trustin Leeのブログでこのアイデアを見つけました。
sleep 2
それを時間の100%動作させる必要がありました。素晴らしい解決策-8つのタブを開いて、さまざまなサーバーにSSH接続したり、さまざまなプロセスを開始したり、これを使用しています:朝のセットアップが完全にスクリプト化されました:)
wmctrl
は必要ありません。
sleep 1
ctrl + shift + tの後にaを追加して、機能させる必要があります。すぐに他に何も起こらない場合はこれを受け入れます