Разница между 2> & 1 <команда> и <команда> 2> & 1 [дубликат]

Сравнение ! = и = ~ похоже на сравнение яблок с апельсинами.

! = примерно означает «не равно», а = ~ означает «соответствует». Подробнее об этих операторах можно прочитать в разделе [[выражение]] в man bash . Вот выдержка из наиболее важных разделов:

  Когда используются операторы == и! =, Строка справа от 
оператора считается шаблоном и сопоставляется в соответствии с 
правила, описанные ниже в разделе «Сопоставление с образцом», как если бы была включена опция оболочки extglob 
. Оператор = эквивалентен оператору ==. Если 
параметр оболочки nocasematch включен, сопоставление выполняется 
без учета регистра буквенных символов. Возвращаемое значение 
равно 0, если строка соответствует (==) или не соответствует (! =) Шаблону 
, и 1 в противном случае. Любая часть шаблона может быть заключена в кавычки для 
принудительного сопоставления указанной в кавычках части как строки. 
 
Доступен дополнительный бинарный оператор = ~ с тем же { {1}} приоритет как == и! =. Когда он используется, строка справа от оператора 
считается расширенным регулярным выражением и 
соответствующим образом сопоставляется (как в regex (3)). Возвращаемое значение - 0, если строка 
соответствует шаблону, и 1 в противном случае. Если регулярное выражение 
синтаксически неверно, возвращаемое значение условного выражения 
равно 2. 
 
1
07.03.2017, 23:00
1 ответ

Они эквивалентны.

Относительный порядок перенаправлений может иметь значение, но не их положение по отношению к команде.

3
27.01.2020, 23:25

Теги

Похожие вопросы