Взято с http://www.intuit.ru/department/os/linuxadmin/8/
Регулярное выражение – средство указания шаблона для поиска его в тексте.
^ — начало строки
$ — конец строки
[] — любой символ из заключённых в скобки. Поддерживает диапазоны, [0-9] – цифры, [a-zA-Z] -все буквы латинского алфавита
[^] — любой символ за исключением заключенных в скобки
\ — отменяет действие любого метасимвола. Например
\$ — обозначает символ $ , а не \ в конце строки, а \\$ — символ \ в конце строки
.- любой один символ.
* — 0 или более раз в тексте встречается предыдущий шаблон. Так например выражение .* означает любой набор символов.
Bash поддерживает несколько операций сравнения. В случае, если условие верно, то оператор сравнения возвращает 0 (true) . Проверить возвращаемое значение можно с помощью специального значения $?. Перечислю их:
#проверка кода возврата последней команды [ -d abcd ] echo $? #проверка прав доступа к файлу: [ -d abcd ] #является ли файл abcd каталогом? [ -f abcd ] #является ли файл abcd обычным файлом? [ -L abcd ] #является ли файл abcd символической ссылкой? [ -r abcd ] #есть ли доступ на чтение к файлу abcd? [ -w abcd ] #есть ли доступ на запись к файлу abcd? [ -s abcd ] #файл abcd имеет ненулевой размер (он не пуст)? [ -u abcd ] #имеет ли файл abcd установленный бит SUID? [ -x abcd ] #является ли файл abcd исполняемым? #проверка строк [ -z $STRING ] #пуста ли строка STRING? [ -n $STRING ] #строка STRING не пуста? [ $STRING = $STRING1 ] #равны ли строки STRING и STRING1? [ $STRING != $STRING1 ] #строки STRING и STRING1 не равны? #проверка чисел #при проверке чисел в условии их обязательно необходимо #заключить в двойные кавычки [ $DIGIT -eq $DIGIT1 ] #равны ли числа DIGIT и DIGIT1? [ $DIGIT -ne $DIGIT1 ] #числа DIGIT и DIGIT1 не равны? [ $DIGIT -gt $DIGIT1 ] #число DIGIT больше DIGIT1? [ $DIGIT -lt $DIGIT1 ] #число DIGIT меньше DIGIT1? [ $DIGIT -gе $DIGIT1 ] #число DIGIT больше или равно DIGIT1? [ $DIGIT -lе $DIGIT1 ] #число DIGIT меньше или равно DIGIT1?