
私は Ubuntu 21.04 を実行しており、次の操作を実行するスクリプトを作成したいと考えています。
走る:
cd && cd path/to/repo && git pull && npm i && code . && npm run dev
次に、次のコマンドを使用して新しい GNOME ターミナル タブを開きます。
gnome-terminal --tab
次に、このタブに切り替えて実行します。
cd && cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev
つまり、基本的には 2 つの開発サーバーを実行する 2 つのタブを備えた 1 つのターミナルが必要です。
xdotool
とを試してみましたxte
が、うまくいきませんでした (キーが押されていないのに)。
私が望むことを実現することは可能でしょうか?
下記のように試してみたところ、failed to run cd
グーグルで検索したところ、次の結果が見つかりました。
gnome-terminal --tab -- /bin/bash -e -c "cd path/to/repo && ls && git pull && npm i && code . && npm run dev" --tab -- /bin/bash -e -c "cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev"
しかし、問題は、それnpm run dev
が決して停止しないことになっているため、2 番目のターミナル タブが開かれないことです。そして、それらを一緒に実行する必要があります...
答え1
gnome-terminal
オプションは非推奨であることを示していますが-e
、3.40.3 でも引き続き機能します。
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
開発者は、これが、タブで異なる作業環境を自動的に設定するなど、必要なことを行う唯一の方法であることを忘れているようです。オプションの最後に実行するコマンドを追加する「新しい」構文では、--
それができません。-e
オプションが削除されると、このようなことを行うには、別のターミナル エミュレーターに移動する必要があります。
したがって、たとえば、これは今のところまだ機能します:
gnome-terminal --tab -e "htop" --tab -e "top"
コマンドhtop
をtop
カスタム スクリプトに置き換えます。
答え2
したがって、sh スクリプトの内容は次のようになります。
gnome-terminal --tab --title='frontend' -e "bash -c 'cd path/to/repo && git pull && npm i && code . && npm run dev'";
gnome-terminal --tab --title='backend' -e "bash -c 'cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev'"
Google 検索の方向性を見つけるのを手伝ってくれた @vanadium に感謝します ;)
意図したとおりに動作します。ターミナルを開いて書き込むと、sh myScript.sh
バックエンドとフロントエンドのリポジトリが実行される 2 つの追加タブが開きます。
ちょっとした問題は、sh ファイルをダブルクリックして実行すると、2 つのターミナル ウィンドウが開くことです (見苦しい、タブが欲しい)。
これをどう修正すればいいのか本当に分かりません。