複数の端末タブを開き、タイトルを付け、ディレクトリに移動し、各タブでコマンドを実行する必要があります。
私はLinuxおよびシェルスクリプトを初めて使用します。オンラインで検索し、いくつかのソリューションを確認した後、このスクリプトを作成しました(編集以下の回答に基づいて):
#!/bin/bash
cd /media/Extra/Project
tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)
cmds[1]="'Rails s'"
titles[1]="Server"
cmds[2]="'Rails c'"
titles[2]="Console"
for i in 1 2; do
options+=($tab --title="${titles[i]}" -e "bash -c \"${cmds[i]} ; bash\"" )
done
gnome-terminal "${options[@]}"
exit 0
タブを開いて名前を付けますが、このエラーを生成するコマンドの実行に失敗します。
この端末の子プロセスの作成中にエラーが発生しました
もう1つの欠点は、実行中のコマンドを停止するとタブが閉じることです。これは望ましくありません。コマンドを停止して、同じタブ内で再度実行できるようにする必要があります。
スクリプトの何が問題になっていますか?それを行う別の簡単な方法はありますか?
注:コマンドから(-e "\" bash -c $ {cmds [i]}; bash\"")部分を削除すると、指定したディレクトリのタブが開き、エラーなしで名前が付けられます。
以下の@Tuknutxの回答を適用してスクリプトを編集した後、エラーは表示されなくなりましたが、bash: Rails c: command not found
およびRails s
は_を開始する代わりに新しいRailsアプリを作成しますRailsサーバー。このフォルダーにアクセスしたら、.rmvrcを使用してgemsetを選択します。
tmux
を tmuxinator
と共に使用することをお勧めします。これはあなたのために仕事をしてくれますし、terminator
レイアウトにも頼ることができます!
terminator
レイアウトチェックアウトの場合mhnagaokaの答え ここ askubuntuも:
レイアウトを設定したら、ターミナルの背景を右クリックして、Preferences→Layoutsタブをクリックして、Addボタンをクリックします。
名前を付けて、Closeを押します。
これにより、前述の
~/.config/terminator/config
ファイルが作成されます。
terminator -l yourLayout
(yourLayoutをステップ2で選択したものに置き換えます)を使用して、保存されたレイアウトを使用してターミネーターを開始できます。(オプション)
~/.config/terminator/config
というファイルを編集して、[layouts]
とその下にネストされるように[[yourLayout]]
、名前を変更しますyourLayoutをdefaultに変更し、以前のdefaultレイアウトを削除/名前変更します。これで、Terminatorがパラメータなしで起動すると、カスタム[[default]]
レイアウトが読み込まれます!
他のいくつかの回答とそれらのコメントを要約するために、ここに私が結んだものがあります:
#!/bin/bash
cd /path/of/my/stuff
tab=" --tab"
options=()
cmds[1]="echo Banana"
cmds[2]="echo Cat"
for i in 1 2; do
options+=($tab -e "bash -c '${cmds[i]} ; bash'" )
done
gnome-terminal "${options[@]}"
exit 0
「マスター」タブ、プロファイル、およびタイトル(gnome-terminal
で非推奨のように見える)を削除したことに注意してください。
-eオプションに指定する引数は、引用符を含む"bash -c command; bash"
です。その文字列全体をコマンドの名前として解釈します!代わりにこれを試してください:-e "bash -c 'command ; bash'"
。このようにして、ターミナルウィンドウで実行されるのはcommand
であり、その実行後に、娘のシェルが与えられます。ちなみに、'command & bash'
;と言うこともできます。これにより、バックグラウンドでコマンドが実行され、娘のシェルがすぐに表示されます。
これを試して:
options+=($tab --title="${titles[i]}" -e "bash -c \"${cmds[i]} ; bash\"" )
そうでない場合、-eの後の式全体がコマンドとして解釈されます。
.bashrcのエイリアスを含めるには、c
の代わりに-ic
を使用します