Gnome Terminalを起動して複数のコマンドを実行するスクリプトを作成しようとしています。これはUSB経由でシリアルデータを記録するために使用され、最終的な目標は異なるシェルで複数のCOMポートを開くスクリプトを作成することです。すべてのシェルは以下を実行する必要があります。
sudo script /logs/deviceX.log
sudo picocom /dev/ttyUSB0 -b 115200 -p o | ts "%Y-%b-%d %H:%M:%S10"
シェルを実行し続けます。このコマンドを端末に直接入力すると正常に動作することが確認されたので、openPort
これら2つのコマンドを使用してスクリプトを作成し、次を試しました。
gnome-terminal -x bash -c "./openPort; exec bash"
ただし、端末は2番目のコマンドではなく最初のコマンドのみを実行します。
その後、各コマンドごとに別々のスクリプトを作成し、次のように試しました。
gnome-terminal -x bash -c "./openPort1; ./openPort2; exec bash"
しかし、私はまだ同じ結果を得ます。
これは単に構文の問題ですか、それとも完全に間違ったことをしていますか?
答え1
-xの代わりに-eを使用してgnome-terminalを起動すると機能します。あなたの場合:
gnome-terminal -e "./openPort"
ターミナルウィンドウが閉じないようにするには、スクリプトが終了しないようにする必要がありますsleep
。スクリプトが完了した後にインタラクティブシェルを使用するには、bash -i
最後にそれを追加します。