web-dev-qa-db-ja.com

ddコマンドの完了後にターミナルを終了する

悪い英語をまずごめんなさい。第二に、クローン作成ツールを作成しています。私はコマンドを使用しています

Sudo mate-terminal --geometry=50x10 -x sh -c "Sudo dd if=/dev/sda of=/dev/sdb status=progress; bash"

このコマンドを使用しているので、ユーザーが上記のコマンドでクローンボタンリンクをクリックすると、ユーザーはこのような新しい端末で1秒あたりの残り時間と転送のログを表示するクローン作成の進行状況を確認できます画像。

問題は、このツールを作成するためにタッチスクリーンデバイスを使用しており、クローン作成が完了した後、ターミナルが自動終了しないことです。ユーザーは「x」ボタンをクリックして端末を閉じる必要があります。これは、3.5インチのタッチスクリーンディスプレイを使用しているため、小さなタッチスクリーンの「x」ボタンをクリックするのがかなり難しいため、問題になります。クローン作成プロセスが行われ、端末にこれが表示されます

私はすでに試しました

exec ./clone.sh

そして

./clone.sh && exit

そして

./clone; exit

しかし、すべてが失敗します。

あなたの情報については、コマンドはボタンにリンクされているので、私のコマンドは次のようになります

(action)./clone.sh && exit(/action)

誰も私を助けることができますか?

2
Najmi

ターミナルが開いたままになるのは、ddコマンドを実行してから新しいbashインスタンスを開始するように指示しているためです。コマンドの最後からbashを削除すると、生成されたターミナルは期待どおりに消えます。

また、既にddで端末を実行している場合、SudoSudoを実行する理由はありません。 Sudoを使用して実行する必要があるのは、2つのうち1つだけです。また、単一のコマンドを実行するだけなので、sh -cも必要ありません。 -xを直接使用するだけです。

したがって、これらすべてをまとめると、あなたが探しているのは:

Sudo mate-terminal --geometry=50x10 -x dd if=/dev/sda of=/dev/sdb status=progress

[〜#〜] important [〜#〜]:このQ&Aを読んでいる人にとっては、このコマンドは危険なので、コンピューターで実行しないでください。 /dev/sdbの内容があればそれを上書きします。 OPがやりたいことですが、何をしているのかわからない場合は実行しないでください。

3
terdon