私はさらに掘り下げて見つけ、さらに「主観的に」美しい答えを見つけました。目標: コンソールの 3 つの異なるタブで、irssi を実行する空のシェル、音楽プレーヤー、および画面セッションを開始します。
- 以下を使用して、単純な実行可能スクリプト ファイルを作成します。
#!/bin/bash
konsole --hold --new-tab &
konsole --hold --new-tab -e $SHELL -c "/usr/bin/screen -DRS irssi-in-screen irssi" &
konsole --hold --new-tab -e $SHELL -c "/usr/bin/ncmpcpp" &
手がかりは、コマンドを直接実行するのではなく、渡されたすべての引数を受け取ることができるシェルを呼び出すことです。$SHELL は /bin/bash に設定されています。この「問題」はここに文書化されています:
引用: " Konsole は、-e オプションの後の引数を 1 つのコマンドとして扱い、直接実行します。解析して、場合によっては実行のためにサブコマンドに分割するのではありません。これは、xterm とは異なります。
konsole -e "command1 ; command2" does not work
konsole -e $SHELL -c "command1 ; command2" works