сначала жаль о плохом английском языке. Во-вторых, я создаю клонирование инструменты. Я использую команду
sudo mate-terminal --geometry=50x10 -x sh -c "sudo dd if=/dev/sda of=/dev/sdb status=progress; bash"
Я использую эту команду так, чтобы, когда пользователь нажимают на ссылку кнопки клона с командой выше, пользователь видел прогресс клонирования, которые отображают своего рода журнал времени, оставаясь и передают в секунду на новом терминале как в этом изображении.
Проблема теперь, я использую устройство сенсорного экрана для создания, это оснащает и после того, как клонирование завершено терминальная привычка автоматический выход. Пользователь должен нажать "x" кнопку для закрытия терминала, и это было бы проблемой, потому что я использую 3,5" дисплея с сенсорным экраном, и может быть довольно трудно нажать на "x" кнопку на маленьком сенсорном экране. Когда процесс клонирования сделан, он отображает это на терминале
Я уже попробовал
exec ./clone.sh
и
./clone.sh && exit
и
./clone; exit
Но весь сбой.
Для Вашей информации команда является ссылкой на кнопку, таким образом, моя команда похожа на это
(action)./clone.sh && exit(/action)
Кто-либо может помочь мне?
Причина терминал остается открытым, состоит в том, что Вы говорите ему работать эти dd
команда и затем запускать новый экземпляр удара. Если Вы удалите bash
из конца команды, то порожденный терминал исчезнет, как Вы ожидаете.
кроме того, нет никакой причины работать dd
с sudo
, если Вы уже выполняете терминал с sudo
. Только одна из двух потребностей, которые будут выполнены с sudo
, какой ваше дело. Вам также не нужно sh -c
, так как Вы только хотите выполнить единственную команду. Просто используйте -x
непосредственно.
Так, беря все это вместе, что Вы ищете:
sudo mate-terminal --geometry=50x10 -x dd if=/dev/sda of=/dev/sdb status=progress
<час> ВАЖНЫЙ : кому-либо еще читающему этот Q& A, эта команда опасна, так не выполняйте ее на своем компьютере. Это перезапишет содержание Вашего /dev/sdb
, если у Вас будет тот. Это - то, что OP хочет сделать, но Вы не должны выполнять его, если Вы не знаете то, что Вы делаете.