Это может быть простым вопросом, но...
У меня есть update.sh файл со следующим:
sudo apt-get update
sudo apt-get upgrade
Когда я выполняю это использование./update.sh (после установки его к исполняемому файлу), это просит, чтобы я ввел свой sudo пароль. Это выполнит обе команды, и я могу чрезвычайно только запустить этот скрипт однажды и иметь мою Кв. - получают команды обновления/обновления, заботившиеся о?
Спасибо все
Путь sudo
работы состоят в том, что по умолчанию это дает Вам за 15 минут до того, как это попросит пароль снова. Таким образом да, использование двух команд, будет работать превосходный, и в зависимости от сколько времени apt-get update
выполнения необходимо будет ввести пароль однажды.
Однако это не лучшая практика. Вместо этого я предложил бы делать Ваш целый сценарий выполненным с sudo вместо того, чтобы поместить его перед каждой командой в файле. Другими словами, сценарий должен быть:
#!/bin/bash
apt-get update
apt-get upgrade
И выполненный это как
sudo ./my_script.sh
Заметьте, что здесь мы используем #!/bin/bash
строка для использования bash
окружите как интерпретатор. Это очень отличается от /bin/sh
. Поскольку, что Вы делаете, это не имеет никакого значения, но если необходимо знать, что они отличаются по синтаксису некоторых операторов.
Однако еще лучший подход должен был бы избавиться от сценария в целом и функции использования или псевдонима, который делает то, что Вы хотите. Сценарии действительно для больших объемов кода, который Вы хотите снова использовать. Для 2 - 3 строк функция или псевдоним в ~/.bashrc
файл это будет достаточным.
Лично я сделал бы что-то вроде этого в моем ~/.bashrc
alias agu="sudo bash -c 'apt-get update && apt-get upgrade'"
Не забывайте устанавливать DEBIAN_FRONTEND=noninteractive
для тех противных подсказок, о который версия поддержать:
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
Если Вы не сделаете, то этот Ваш сценарий зависнет в исправлении неопределенности. Таким образом, если бы Вы собирались сделать это в сценарии, то я сделал бы следующее:
#!/usr/bin/env bash
set -e
patching(){
# sudo specified because this was from my bootstrap script for an
# ec2 instance remove the sudos as previously stated if you are
# going to exec it from your current shell
sudo apt-get update -y;
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y;
};
patching;
Ранее установленные методы будут работать..., пока они не сделают.
Я должен был вернуться к предыдущему сценарию, который я записал для нахождения этой переменной.
Хотелось бы надеяться, это помогает кому-то еще с их сценарием исправления/начальной загрузки.
Почему не просто выполненный:
apt-get update && apt-get upgrade