sudo apt-get purge firefox не работает в командном файле

У меня есть простой сценарий оболочки, который используется для обновления Firefox. Содержание этого:

#!/bin/sh

sudo apt-get pruge firefox

sudo apt-get install firefox

Вот и все. Теперь, когда я запускаю файл в терминале, используя по порядку,

cd Desktop/Batch\ Files

sudo chmod 775 Firefox.sh

sudo ./Firefox.sh

Выходные данные говорят, что действие pruge не может быть завершено, но остальная часть файла выполняется.

Вот точный результат:

sudo: unable to resolve host ubuntu: Connection timed out
E: Invalid operation pruge
sudo: unable to resolve host ubuntu: Connection timed out
Reading package lists... Done
Building dependency tree       
Reading state information... Done
firefox is already the newest version (57.0.1+build2-0ubuntu0.16.04.1).
0 upgraded, 0 newly installed, 0 to remove and 261 not upgraded.

Как бы досадно это было, я все равно могу запускать код построчно, и действие purge работает.

2
задан 6 December 2017 в 12:51

2 ответа

В вашем сценарии есть опечатка, она должна быть purge, а не pruge. И до этого вам не нужно sudo внутри вашего скрипта, если вы вызываете свой скрипт с помощью sudo script.sh. Таким образом, ваш сценарий должен быть:

#!/bin/sh
apt-get purge firefox
apt-get install firefox

Вы хотите установить флаг -y для установки, чтобы он автоматически устанавливался, даже если нужно установить несколько пакетов. Поэтому измените:

apt-get install firefox

на:

apt-get install -y firefox

Если вы хотите, чтобы вывод был бесшумным, вы можете использовать опцию -qq (что подразумевает -y), в этом случае В случае, если вам также необходимо задать параметр очистки -y или -qq, но тогда обе команды будут выполняться без вывода сообщений. Пример полностью тихого сценария:

#!/bin/sh
apt-get purge -qq firefox &&
apt-get install -qq firefox

Вы наверняка удивляетесь, почему я поместил эти && в сценарий: это заставляет вторую команду выполняться только в том случае, если первая была успешной.

Однако, как правило, нет необходимости очищать Firefox для установки новой версии. Для этого должно быть достаточно просто sudo apt-get update && sudo apt-get install --reinstall firefox, поскольку профиль и настройки все равно не удаляются.

9
ответ дан 6 December 2017 в 12:51

В вашем коде вы вводите «pruge», его нужно заменить на «purge».

3
ответ дан 6 December 2017 в 12:51

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

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