d'abord désolé pour le mauvais anglais. Deuxièmement, je crée un outil de clonage. J'utilise la commande
Sudo mate-terminal --geometry=50x10 -x sh -c "Sudo dd if=/dev/sda of=/dev/sdb status=progress; bash"
J'utilise cette commande de sorte que lorsque l'utilisateur clique sur le lien du bouton de clonage avec la commande ci-dessus, il peut voir l'avancement du clonage, lequel affiche une sorte de journal du temps restant et du transfert par seconde sur un nouveau terminal comme celui-ci. image.
Le problème, c’est que j’utilise un appareil à écran tactile pour créer ces outils et, une fois le clonage terminé, le terminal ne se déconnecte pas automatiquement. L'utilisateur doit cliquer sur le bouton "x" pour fermer le terminal. Cela poserait un problème, car j'utilise un écran tactile de 3,5 "et il peut être assez difficile de cliquer sur le bouton" x "d'un petit écran tactile. le processus de clonage est fait, il affiche ceci sur le terminal
J'ai déjà essayé
exec ./clone.sh
et
./clone.sh && exit
et
./clone; exit
Mais tous échouent.
Pour votre information, la commande est un lien vers un bouton donc ma commande est comme ceci
(action)./clone.sh && exit(/action)
Quelqu'un peut-il m'aider ?
La raison pour laquelle le terminal reste ouvert est que vous lui indiquez d'exécuter la commande dd
, puis de démarrer une nouvelle instance bash. Si vous supprimez la bash
de la fin de la commande, le terminal généré disparaîtra comme prévu.
De plus, il n’ya aucune raison de lancer la dd
avec Sudo
si vous utilisez déjà le terminal avec Sudo
. Un seul des deux doit être exécuté avec Sudo
, lequel vous appartient. De plus, vous n'avez pas besoin du sh -c
puisque vous ne voulez exécuter qu'une seule commande. Utilisez simplement le -x
directement.
Donc, en prenant tout cela ensemble, ce que vous recherchez, c'est:
Sudo mate-terminal --geometry=50x10 -x dd if=/dev/sda of=/dev/sdb status=progress
IMPORTANT: Pour tous ceux qui liront ce Q & A, cette commande est dangereuse, ne l'exécutez pas sur votre ordinateur. Il écrasera le contenu de votre /dev/sdb
si vous en avez un. C'est ce que le PO veut faire, mais vous ne devriez pas l'exécuter à moins de savoir ce que vous faites.