Что означает "-ne" означает в bash?

Что означает команда "-ne" в сценарии bash?

Например, что делает следующая строка из сценария bash?

[ $RESULT -ne 0 ] 

Ответ 1

Это одна из тех вещей, которые трудно найти, если вы еще не знаете, где искать.

[ на самом деле это команда, а не часть синтаксиса оболочки bash, как вы могли бы ожидать. Это, как правило, встроенная команда Bash, поэтому она задокументирована в руководстве Bash.

Там также внешняя команда, которая делает то же самое; на многих системах, предоставляемых пакетом GNU Coreutils.

[ эквивалентен test команде, за исключением того, что [ требуется ] качестве последнего аргумента, а test - нет.

Предполагая, что документация bash установлена в вашей системе, если вы наберете info bash и info bash поиск

'test'

(обратная сторона и апостроф являются частью поиска), вы найдете документацию для [ команды, также известной как команда test.

После ссылки на "Условные выражения Bash" приведет вас к описанию -ne, который является оператором числового неравенства ("ne" означает "не равно"). Напротив, != оператор линейного неравенства.

Вы также можете найти документацию bash в Интернете.

Официальное определение test команды - это стандарт POSIX (к которому реализация bash должна соответствовать достаточно хорошо, возможно, с некоторыми расширениями).

Ответ 2

"не равно". Таким образом, в этом случае $RESULT проверяется на то, чтобы он не был равен нулю.

Однако тест выполняется численно, а не в алфавитном порядке:

n1 -ne n2     True if the integers n1 and n2 are not algebraically equal.

в сравнении с:

s1 != s2      True if the strings s1 and s2 are not identical.