tr
подходит для этой работы:
tr -d 0
{ {1}}
[: 0:]
недействителен, поскольку вам необходимо использовать класс символов между [:
и :]
.
Предполагая, что вы все еще находитесь в пределах времени ожидания кэша учетных данных sudo (, если вы не уверены, просто обновите его с помощью sudo -v
перед запуском фрагмента ). Эта проблема возникает из-за того, что apt (-get )очень богатое консольное приложение и, таким образом, использует стандартный ввод, даже если он ничего не запрашивает у вас из-за -y
.
Это можно обойти, запустив весь фрагмент в подоболочке:
В приглашении начните с ввода (
, затем вставьте фрагмент, затем введите закрывающий )
и нажмите клавишу возврата
Это должно уйти.
Обратите внимание, что фрагмент кода не выполняется сразу после его вставки. Он скорее «ставится в очередь» в командной строке, ожидая закрытия скобок.
(PS :В зависимости от вашей системы вам может понадобиться использовать apt-get autoremove
вместо apt autoremove
, а также вам может понадобиться использовать -y
на update
и upgrade
также)
Если между командой sudo apt upgrade
и командой sudo apt install -y build-essentials
прошло достаточно времени, SUDO снова запросит ваш пароль.
Поскольку вы вставляете текст в консоль, следующая строка (с )будет принята как STDIN для запроса пароля SUDO. Если строка не соответствует вашему паролю, аутентификация завершится ошибкой и строка build-essentials
не будет выполнена.