Введите пароль только один раз для сценария оболочки

Я создал сценарий оболочки для обновления и обновления моих существующих пакетов за один раз. Сценарий:

#!/bin/bash
sudo apt-get update;
sleep 10;
sudo apt-get upgrade;
sleep 10;
sudo youtube-dl -U;
sleep 10;
sudo shutdown -h now;
exit 0

Проблема, с которой я сталкиваюсь, состоит в том, что, поскольку мое интернет-соединение не очень быстрое, к тому времени, когда оно достигает третьей команды, сеанс пароля истекает, и я должен повторно ввести мой пароль. И для этого я должен быть постоянно на связи с моим ПК, что фактически побеждает цель сценария.

Итак, мой вопрос :

Есть ли способ, с помощью которого я могу сохранить пароль в переменной, и на каждом sudo пароль вводится из переменной чтобы мне не приходилось все время находиться рядом с компьютером? (или что-то подобное, что бы делать то, что я хочу)

Что-то вроде этого:

#!/bin/bash
printf "Please enter your password: ";
read -s password
sudo apt-get update;
$password
sleep 10;
sudo apt-get upgrade;
$password
sleep 10;
sudo youtube-dl -U;
$password
sleep 10;
sudo shutdown -h now;
$password
exit 0
0
задан 19 April 2016 в 15:51

2 ответа

Удалите sudo из команд в сценарии, и запустите фактический скрипт как корень, например,

#!/bin/bash
apt-get update;
sleep 10;
apt-get upgrade;
sleep 10;
youtube-dl -U;
sleep 10;
shutdown -h now;
exit 0

И выполните его с sudo ./my-script.sh

2
ответ дан 20 April 2016 в 01:51
  • 1
    @heynnema, Таким образом, Вы на самом деле не имеете в виду ОС, будет остановка, функционирующая , когда Apport будет отключен, не так ли? I' m довольно уверенный, что любой, кто doesn' t уже знают что you' ре, пытающееся преподавать им, интерпретирует " Don' t отключают важные части OS" означать это. (That' s действительно мое единственное беспокойство здесь.) – Eliah Kagan 7 November 2017 в 11:20

Это позволит Вам вставлять пароль однажды. Для apt-get команды, следующее имеет -y набор флага, "Автоматический да к подсказкам" для всего кроме dist-upgrade.

sudo bash -c "apt-get -y update && apt-get dist-upgrade && youtube-dl -U && apt-get -y autoremove && apt-get -y autoclean && shutdown -h now"
0
ответ дан 20 April 2016 в 01:51
  • 1
    @EliahKagan не, я никогда не намеревался подразумевать, что ОС прекратит работать, а скорее... don' t... еще отключают все контрольные лампа и индикаторы на панели инструментов Вашего автомобиля как Вы собирающийся знать это you' ре, собирающееся исчерпанный газ... или Ваш генератор переменного тока, находится на неисправности. Знание - сила, и больше пользователь знает о what' s идущий на/несправедливость с их системой, лучше шанс it' ll фиксируется, а не проигнорировал. – heynnema 7 November 2017 в 11:26

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

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