Дайте мне шесть часов на то, чтобы срубить дерево, и первые четыре я буду точить топор.
Bash таким же образом может обрабатывать конвейер команд:
if ls | grep pdf
then
echo "found one or more pdf files here"
else
echo "no pdf files found"
fi
Квантификаторы указывают, сколько раз элемент должен появиться в строке, и определяются фигурными скобками {}. Например, шаблон T{5} означает, что буква T должна последовательно появляться ровно пять раз. Шаблон T{3,6} означает, что буква T должна появляться последовательно от трех до шести раз. Шаблон T{5,} означает, что буква T должна появляться пять раз или более.
Якоря
В bash регулярные выражения допустимы в составной команде [[ при использовании сравнения =~, например, в операторе if.
bash Cookbook от Карла Олбинга (Carl Albing) и Дж. П. Воссена (JP Vossen) (O’Reilly) (http://bit.ly/bash_cookbook_2E)
Таблица 2.3. Классы символов для сопоставления с образцом
Иногда нужно, чтобы сообщения об ошибках были объединены с нормальными результатами (как это происходит по умолчанию, когда и то и другое выводится на экране). Это можно сделать так:
handywork < data.in > results.out 2>&1
Stdin — это файловый дескриптор 0, stdout — файловый дескриптор 1, а stderr — файловый дескриптор 2. Таким образом, мы можем перенаправить сообщения об ошибках:
handywork 2> err.msgs
дополнить, используя символ >>
handywork < data.in | tee results.out