スクリプトで端末ウィンドウを開く

スクリプトで端末ウィンドウを開く

F1端末を起動するか、ボタンを押してフォーカスを合わせたいです。私はそれを実装しようとしています:

  1. これらのコマンドを使用して、GNOMEキーボード設定にカスタムショートカットを追加します。

    wmctrl -s 4 && pgrep terminator || nohup terminator > /dev/null &`
    
    • wmctrl -s 4画面切り替え、
    • その後、pgrep terminator端末がすでに実行中であることを確認し、
    • nohup terminator > /dev/null &そうでない場合は、端末を実行してください。

    画面が右に変わりますが、端末は開かれません。

  2. 上記のようにコマンドを実行可能*.shファイルに配置し、ショートカット設定で絶対パスを指定します。
    すべて同じ。

  3. 別の端末で上記のコマンドを実行してみてください。
    期待どおりに動作します。(画面切り替え、ターミネーターを開く)

  4. 上記のコマンドを使用してスクリプトを実行します。

    #!/bin/zsh                                                                      
    
    wmctrl -s 4 && pgrep terminator || nohup terminator > /dev/null &
    


    これ以上ではありません。画面は切り替わりますが、終了ウィンドウは表示されません。スクリプトを実行すると、端末にもpid番号が表示されます。

昼食後はターミネーターがなんだか閉まっているようでした。

この動作でショートカットを作成するにはどうすればよいですか?

答え1

私はフラグを追加して-xこの問題を解決しましたpgrep。というスクリプトを実行するときターミネーター.sh, pgrep は常に true を返し、コマンドの最後の部分は実行されません。正しいコマンドは次のとおりです。

wmctrl -s 4 && pgrep -x terminator || nohup terminator > /dev/null &

関連情報