apt-get завершает работу скрипта bash после установки пакетов

apt-get завершает работу скрипта bash после установки пакетов

Я прочитал ответы вэта почтано, похоже, это не решает мою проблему.

Я запускаю bash-скрипт через stdin из wget:

wget -O - http://serverip/subfolder/script | sudo bash

Я пробовал использовать apt-get -y --force-yes install <packages..> || true, но он все равно выходит из скрипта, если один из перечисленных пакетов установлен с помощью apt-get.

Скрипт не завершает работу, если все перечисленные пакеты уже установлены.

То же самое происходит, если у меня есть apt-get upgradeи он устанавливает пакет(ы). Это приведет к выходу из скрипта.

У меня есть другой набор скриптов, который, кажется, работает. В этом сценарии скрипт установки — это просто заглушка, которая загружает, запускает скрипт, а bash <scriptname>затем удаляет его. Сам скрипт повысит свои привилегии, выполнив sudo. apt-getЗдесь все работает так, как и ожидалось.

Буду признателен за любую информацию о том, как предотвратить apt-getзавершение скрипта.

решение1

Я бы хотел, чтобы люди перестали делать: wget | bash. Это просто глупо и имеет непреднамеренные эффекты, как здесь. У вас есть bash, так что используйте его возможности. В частности, подстановка процессов:

bash <(wget -O - http://serverip/subfolder/script)

решение2

Вероятно, вам просто нужно прекратить apt-getжадно читать стандартный ввод. Сделайте это, перенаправив stdin в /dev/null, файл, который возвращает eof для чтения. Например:

apt-get -y --force-yes install ... </dev/null

Связанный контент