В настоящее время я прохожу стажировку, и мы работаем здесь с 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, есть идеи, как это исправить?
Если вы просто хотите, чтобы окно работало до тех пор, пока вы не увидите, какой у вас вывод, вы можете использовать команду чтения.
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», если вы справитесь с этим таким образом.
При нажатии на исполняемый файл от графического интерфейса он выполняет содержание его с начала до конца, и в конце он выходит.
, Если Вы хотите сохранить терминал открытым по некоторым причинам (т.е. регистрация вывод) после концов сценария, Вы можете, например:
./your_script.sh
элемент списка
#! /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 часа).