ректории, все равно будет выполняться старая команда (если вызов происходит по короткому имени). Для исправления ситуации воспользуйтесь командой hash с ключом -r (см. Специальные команды).
Если вы переименовали текущую или вышележащую директорию, то команда pwd может давать неверную информацию. Для исправления ситуации воспользуйтесь командой cd с полным именем директории.
Команда test применяется для проверки условия. Формат вызова:
test <выражение>
или
[ <выражение> ]
Команда test вычисляет <выражение> и, если его значение - истина, возвращает код завершения 0 (true); иначе - ненулевое значение (false). Ненулевой код завершения возвращается и если опущены аргументы. <Выражение> может состоять из следующих примитивов:
| -r файл | - истина, если файл существует и доступен для чтения |
| -w файл | - истина, если файл существует и доступен для записи |
| -x файл | - истина, если файл существует и является выполняемым |
| -f файл | - истина, если файл существует и является обычным файлом |
| -d файл | - истина, если файл существует и является директорией |
| -c файл | - истина, если файл существует и является специальным символьно-ориентированным файлом |
| -b файл | - истина, если файл существует и является специальным блок-ориентированным файлом |
| -p файл | - истина, если файл существует и является именованным каналом (pipe) |
| -s файл | - истина, если файл существует и имеет ненулевую длину |
| -t [ дескриптор файла ] | - истина, если открытый файл с указанным дескриптором (по умолчанию 1) существует и ассоциирован с терминалом |
| -z s1 | - истина, если длина строки s1 нулевая |
| -n s1 | - истина, если длина строки s1 ненулевая |
| s1 = s2 | - истина, если строки s1 и s2 совпадают |
| s1 != s2 | - истина, если строки s1 и s2 не совпадают |
| s1 | - истина, если s1 непустая строка |
| n1 -eq n2 | - истина, если целые n1 и n2 алгебраически совпадают . На месте -eq могут быть также -ne, -gt, -ge, -lt, -le |
Команда expr применяется для вычисления выражений. Результат выводится на стандартный вывод. Операнды выражения должны быть разделены пробелами. Метасимволы должны быть экранированы. Надо заметить, что 0 возвращается в качестве числа, а не для индикации пустой строки. Строки, содержащие пробелы или другие специальные символы, должны быть заключены в кавычки. Целые рассматриваются как 32-битные числа.
Ниже приведен список операторов в порядке возрастания приоритета, операции с равным приоритетом заключены в фигурные скобки. Перед символами, которые должны быть экранированы, стоит \.
| <выр> \| <выр> | если первое <выр> |