Ответ 1
Это одна из тех вещей, которые трудно найти, если вы еще не знаете, где искать.
[
на самом деле это команда, а не часть синтаксиса оболочки bash, как вы могли бы ожидать. Это, как правило, встроенная команда Bash, поэтому она задокументирована в руководстве Bash.
Там также внешняя команда, которая делает то же самое; на многих системах, предоставляемых пакетом GNU Coreutils.
[
эквивалентен test
команде, за исключением того, что [
требуется ]
качестве последнего аргумента, а test
- нет.
Предполагая, что документация bash установлена в вашей системе, если вы наберете info bash
и info bash
поиск
'test'
(обратная сторона и апостроф являются частью поиска), вы найдете документацию для [
команды, также известной как команда test
.
После ссылки на "Условные выражения Bash" приведет вас к описанию -ne
, который является оператором числового неравенства ("ne" означает "не равно"). Напротив, !=
оператор линейного неравенства.
Вы также можете найти документацию bash в Интернете.
- Ссылка Bash
- Встроенные оболочки Bourne (включая
test
и[
) - Условные выражения Bash - (Прокрутите вниз,
-ne
находится под "arg1 OP arg2") - Документация POSIX для
test
Официальное определение test
команды - это стандарт POSIX (к которому реализация bash должна соответствовать достаточно хорошо, возможно, с некоторыми расширениями).