Прежде всего, давайте поймем, почему появляется сообщение. На самом деле, если у пакета нет зависимостей, которые вы еще не установили или явным образом сказал ему установить, apt никогда не спрашивает вас:
➜ ~ sudo apt-get -qq install xfce4-screenshooter
Selecting previously unselected package xfce4-screenshooter.
(Reading database ... 296146 files and directories currently installed.)
Preparing to unpack .../xfce4-screenshooter_1.8.1-2_amd64.deb ...
Unpacking xfce4-screenshooter (1.8.1-2) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Processing triggers for mime-support (3.56) ...
Setting up xfce4-screenshooter (1.8.1-2) ...
Хотя если вы хотите установить пакет, который зависит на пакетах, о которых вы не упомянули, он спросил бы:
➜ ~ sudo apt-get -q install avis
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libjzlib-java libmina-java libslf4j-java
Suggested packages:
libmina-java-doc libspring-beans-java libcommons-logging-java
liblog4j1.2-java
The following NEW packages will be installed:
avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Need to get 720 kB of archives.
After this operation, 1,258 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Что бы вы ни говорили, не спросите, не указали ли вы также, что вы хотите установить этот пакет:
➜ ~ apt-get -q install avis libjzlib-java libmina-java libslf4j-java
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
libmina-java-doc libspring-beans-java libcommons-logging-java
liblog4j1.2-java
The following NEW packages will be installed:
avis libjzlib-java libmina-java libslf4j-java
0 upgraded, 4 newly installed, 0 to remove and 14 not upgraded.
Inst libjzlib-java (1.1.3-1 Debian:testing [all])
Inst libslf4j-java (1.7.7-1 Debian:testing [all])
Inst libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Inst avis (1.2.2-2 Debian:testing [all])
Conf libjzlib-java (1.1.3-1 Debian:testing [all])
Conf libslf4j-java (1.7.7-1 Debian:testing [all])
Conf libmina-java (1.1.7.dfsg-11 Debian:testing [all])
Conf avis (1.2.2-2 Debian:testing [all])
Но тогда, как сделать так, чтобы он не спросил вас окончательно? Через Rizwind ответ должен охватывать решения ad-hoc и scripting (на самом деле эта опция больше используется в скриптах), вы можете вместо этого изменить свой файл apt.conf и добавить:
APT::Get::Assume-Yes
Что-то вроде этого должно быть достаточно:
echo 'APT::Get::Assume-Yes;' | sudo tee -a /etc/apt/apt.conf.d/00Do-not-ask
Обратите внимание, что это не позволит другим более вопиющим запросам, которые вы должны проверить, например:
➜ ~ sudo apt-get install sonar
WARNING: The following packages cannot be authenticated!
sonar
Install these packages without verification? [y/N]
Вот почему я бы не рекомендовал использовать из yes | ..., так как это предупреждение будет проигнорировано.
Если вы просто хотите, чтобы окно оставалось до тех пор, пока вы не увидите, какой у вас вывод, вы можете использовать команду read.
read -rsp $'Press enter to continue...\n'
Но я чувствую, что есть больше проблема там: редко бывает хорошей идеей использовать «sudo» в сценариях bash. Вместо этого вы должны запустить скрипт с помощью команды sudo.
И ваш сценарий не просто обновляет Libre Office, но и делает полный пакет обновления для всех пакетов.
If вы хотите обновить Libre Office run , тогда вам нужно указать, что:
sudo apt-get install --only-upgrade libreoffice
Если ваш босс хочет, чтобы установки Libre Office не обновлялись, вы можете проверить как это сделать с помощью cron; если вы можете сделать это при каждой перезагрузке, каждые 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 секунд после завершения команды apt-get (или сбой). Вы можете использовать другие значения времени (единицы), такие как «5 м» (5 минут) или «2 часа» (2 часа).
Если вы просто хотите, чтобы окно оставалось до тех пор, пока вы не увидите, какой у вас вывод, вы можете использовать команду read.
read -rsp $'Press enter to continue...\n'
Но я чувствую, что есть больше проблема там: редко бывает хорошей идеей использовать «sudo» в сценариях bash. Вместо этого вы должны запустить скрипт с помощью команды sudo.
И ваш сценарий не просто обновляет Libre Office, но и делает полный пакет обновления для всех пакетов.
If вы хотите обновить Libre Office run , тогда вам нужно указать, что:
sudo apt-get install --only-upgrade libreoffice
Если ваш босс хочет, чтобы установки Libre Office не обновлялись, вы можете проверить как это сделать с помощью cron; если вы можете сделать это при каждой перезагрузке, каждые 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 секунд после завершения команды apt-get (или сбой). Вы можете использовать другие значения времени (единицы), такие как «5 м» (5 минут) или «2 часа» (2 часа).
Если вы просто хотите, чтобы окно оставалось до тех пор, пока вы не увидите, какой у вас вывод, вы можете использовать команду read.
read -rsp $'Press enter to continue...\n'
Но я чувствую, что есть больше проблема там: редко бывает хорошей идеей использовать «sudo» в сценариях bash. Вместо этого вы должны запустить скрипт с помощью команды sudo.
И ваш сценарий не просто обновляет Libre Office, но и делает полный пакет обновления для всех пакетов.
If вы хотите обновить Libre Office run , тогда вам нужно указать, что:
sudo apt-get install --only-upgrade libreoffice
Если ваш босс хочет, чтобы установки Libre Office не обновлялись, вы можете проверить как это сделать с помощью cron; если вы можете сделать это при каждой перезагрузке, каждые 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 секунд после завершения команды apt-get (или сбой). Вы можете использовать другие значения времени (единицы), такие как «5 м» (5 минут) или «2 часа» (2 часа).