Закройте fd3
дважды, потому что вы создаете две подоболочки в скрипте, каждая подоболочка наследуется и копирует дескриптор родительского файла. Close fd3
в каждой подоболочке не влияет на другие (и родительский тоже).
Таким образом, строка комментария очень нечеткая и вводит в заблуждение.
Если вы хотите перенаправить на конвейер только stder
, вы можете использовать подстановку процесса
:
ls -l 2> >(grep bad)
или поменять местами stderr
и stdout
]:
ls -l 3>&1 1>&2 2>&3 | grep bad
Лучшее, что я могу придумать, это:
DEBIAN_FRONTEND=noninteractive apt remove --purge -yq mariadb\*
rm -rf /var/lib/mysql
ПРЕДУПРЕЖДЕНИЕ :Это может быть опасно.
Для ответа на вопрос можно использовать debconf
предварительную настройку; в вашем случае, насколько я могу судить, это будет что-то вроде
echo mariadb-galera-server-5.5 mysql-server-5.1/postrm_remove_databases boolean true | debconf-set-selections
Чтобы определить точные значения для первых двух частей («mariadb-galera-server-5.5
» и «mysql-server-5.1/postrm_remove_databases
» ), вам нужно определить, какой пакет предлагает вам (посмотреть заголовок окно на скриншоте )и посмотрите на ожидаемое значение шаблона (в его postrm
,/var/lib/dpkg/info/mariadb-galera-server-5.5.postrm
). Вы также можете просмотреть вывод debconf-get-selections
и найти соответствующую запись.
Затем запустите apt
с debconf
в не -интерактивном режиме:
DEBIAN_FRONTEND=noninteractive apt purge mariadb\*