Терминал закрывается после использования файла bash [closed]

В настоящее время я прохожу стажировку, и мы работаем здесь с mintlinux.

Мой босс хочет, чтобы я создал исполняемый файл, который автоматически обновляет libreoffice с 5.1 до 5.3 после нажатия на него.

Я создал файл bash, подобный этому (я не уверен, что это вообще правильно, поскольку я не использую mintlinux и не имею с ним никакого опыта)

#! /bin/bash

sudo add-apt-repository ppa:libreoffice/ppa 
sudo apt-get update && sudo apt-get dist-upgrade

Но терминал закрывается через мгновение после того, как я открываю bash, есть идеи, как это исправить?

1
задан 3 April 2017 в 10:02

2 ответа

Если вы просто хотите, чтобы окно работало до тех пор, пока вы не увидите, какой у вас вывод, вы можете использовать команду чтения.

read -rsp  

Но я чувствую, что есть большая проблема: редко бывает хорошей идеей использовать «sudo» в скриптах bash. Вместо этого вы должны запустить скрипт с помощью команды sudo.

И ваш сценарий, он не просто обновляет Libre Office, он выполняет полное обновление системы для всех пакетов.

Если вы хотите обновить только Libre Office , то вам нужно указать следующее:

sudo apt-get install --only-upgrade libreoffice

Если ваш босс хочет, чтобы установки Libre Office были обновлены, вы можете пожелать проверить, как это сделать с помощью cron; if может помочь вам сделать это при каждой перезагрузке, каждые X часов (или минут) и т. д.

И так как есть crontab для «root» (т. Е. Run: «sudo crontab -e»), у вас не будет и «проблем с sudo», если вы справитесь с этим таким образом.

Press enter to continue...\n'

Но я чувствую, что есть большая проблема: редко бывает хорошей идеей использовать «sudo» в скриптах bash. Вместо этого вы должны запустить скрипт с помощью команды sudo.

И ваш сценарий, он не просто обновляет Libre Office, он выполняет полное обновление системы для всех пакетов.

Если вы хотите обновить только Libre Office , то вам нужно указать следующее:

sudo apt-get install --only-upgrade libreoffice

Если ваш босс хочет, чтобы установки Libre Office были обновлены, вы можете пожелать проверить, как это сделать с помощью cron; if может помочь вам сделать это при каждой перезагрузке, каждые X часов (или минут) и т. д.

И так как есть crontab для «root» (т. Е. Run: «sudo crontab -e»), у вас не будет и «проблем с sudo», если вы справитесь с этим таким образом.

1
ответ дан 7 December 2019 в 15:38

При нажатии на исполняемый файл от графического интерфейса он выполняет содержание его с начала до конца, и в конце он выходит.

, Если Вы хотите сохранить терминал открытым по некоторым причинам (т.е. регистрация вывод) после концов сценария, Вы можете, например:

  • Выполняют сценарий от терминального использования: ./your_script.sh
  • Добавляют ВґsleepВґ в конце. Таким образом, сценарий выполнится с начала до конца, но он не достигнет конца, пока "время сна" не будет закончено. Можно сделать это как это:

элемент списка

 #! /bin/bash

 sudo add-apt-repository ppa:libreoffice/ppa 
 sudo apt-get update && sudo apt-get dist-upgrade

 sleep 30

Это сохранит Ваш терминал открытым в течение 30 секунд после того, как Кв. - доберется, команда закончена (или разрушена). Можно использовать другие временные стоимости (единицы), такие как "5 м" (5 минут) или "2 ч" (2 часа).

0
ответ дан 7 December 2019 в 15:38

Другие вопросы по тегам:

Похожие вопросы: