GNU/Linux >> Linux の 問題 >  >> Ubuntu

複数のターミナルタブを開いてコマンドを実行しますか?

複数のターミナルタブを開いてタイトルを付け、ディレクトリに移動して、各タブにコマンドを実行させる必要があります。

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を選択します。

承認された回答:

tmuxの使用をお勧めします tmuxinatorを使用 、それはあなたのために仕事をします、そしてあなたはterminatorに頼ることができます レイアウトも!

terminatorの場合 レイアウトチェックアウトmhnagaokaの回答はこちらaskubuntuも:

  1. レイアウトを設定したら、端末の背景を右クリックして、設定を選択します。 →レイアウト タブをクリックし、追加をクリックします ボタン。

  2. 名前を付けて閉じるをクリックします 。

  3. これにより、前述の~/.config/terminator/configが作成されます。 ファイル。

  4. これで、保存されたレイアウトを使用してターミネータを開始できます。terminator -l yourLayout yourLayoutを置き換えます
    ステップ2で選択したものを使用して)

  5. (オプション) ~/.config/terminator/configを編集します [layouts]と表示されるようにファイルします その下にネストされています[[yourLayout]] yourLayoutの名前を変更します デフォルト 以前のデフォルトを削除/名前変更します レイアウト。これで、ターミネーターがパラメーターなしで起動すると、
    カスタムの[[default]]が読み込まれます。 レイアウト!


Ubuntu
  1. コマンドライン(bash)の「And」の違い??

  2. 複数のホストにSSHで接続し、コマンドを実行しますか?

  3. 標準のBashターミナルの「&&」記号と「;」記号の違いは?

  1. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行

  2. Bash の eval コマンドとその典型的な使用法

  3. Bash - 日付コマンドとスペース

  1. Ubuntu 20.04で端末履歴を表示および削除する-最良の方法は?

  2. 複数のターミナルウィンドウでBashの履歴を保持しますか?

  3. |ターミナルコマンドで?