複数のターミナルタブを開いてタイトルを付け、ディレクトリに移動して、各タブでコマンドを実行する必要があります。
私は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 \ "")の部分を削除すると、指定されたディレクトリのタブが開き、名前が付けられます。エラーは発生しません。
-編集-1:
以下の@Tuknutx回答を適用してスクリプトを編集すると、エラーは表示されなくbash: rails c: command not found
なりrails s
ますが、Railsサーバーを起動する代わりに新しいRailsアプリを作成します。このフォルダーにアクセスしたら、.rmvrcを使用してgemsetを選択します。
cmds[1]="'ping 192.168.9.9'"
た場合、同じエラーが表示されますが、単一引用符を削除することで解決しました。だから私が書くならcmds[1]="ping 192.168.9.9"
それはうまくいく。
tab=" --tab-with-profile=Default"
??