Что 0 2>&1 >/dev/null
означает нижеизложенное?
rawout=$(HandBrakeCLI -i /dev/dvd -t 0 2>&1 >/dev/null)
также ниже,
count=$(echo $rawout | grep -Eao "\\+ title [0-9]+:" | wc -l)
что это -Eao "\\+ title [0-9]+:" | wc -l)
подразумевает?
решение1
В соответствии сДокументация HandBreak cli:
Опция -t 0
означает «сканировать только все заголовки».
Кроме того, 2>&1 >/dev/null
это перенаправление вывода ошибок (потока ошибок) терминала Linux в ваш выходной поток (который отображает общие команды и выходные сообщения на терминале), и оба они перенаправляются в /dev/null
специальный файл устройства, который отбрасывает все, что ему отправлено.
Это метод сделать команду беззвучной и не показывать вам никаких сообщений.
Выражение grep -Eao "\\+ title [0-9]+:" | wc -l
представляет собой комбинацию выходных данных, grep -Eao "\\+ title [0-9]+:"
отправленных команде wc -l
, которая подсчитывает количество строк в файле, или выходных данных команды.
Другими словами: подсчитайте, сколько строк grep -Eao "\\+ title [0-9]+:"
выводит команда.
Больше о wc
в wc страница руководства.
Утилита grep
выполняет поиск заданного шаблона выражения внутри файла или вывода команды:
Параметр -a
означает «обрабатывать эти данные как текстовые данные».
Параметр -E
является устаревшим параметром, grep
который иногда используется для обработки шаблонов как расширенных регулярных выражений.
Наконец, -o
означает «показывать только совпадающие результаты всей совпадающей строки».
В целом, использование grep
здесь, по-видимому, является механизмом поиска по названию сериала и эпизода и отображения их имени.
Больше о grep
в grep страница руководства.