Это действительно имеет место. 389 родительский проект для этих сервисов. Имя изменилось на это, чтобы лишить от брендинга того, чтобы быть "Red Hat" и поощрить принятие через другие разновидности Linux.
Это совпадает с:
[ `echo hi` ] > /dev/null
перенаправления могут появиться где угодно на строке.
При нормальном состоянии это совпадает с
[ hi ]
Который самостоятельно совпадает с:
true
Это - команда, которая ничего не производит и возвращает статус выхода успеха.
Результат может отличаться если:
/dev/null
(которого снова не должно происходить при нормальных условиях). В этом случае оболочка возвратится с ненулевым статусом выхода, и Вы будете видеть сообщение об ошибке, и [
команда не будет выполнена.$IFS
содержит также h
или i
, затем это решит к (например, для IFS=h): [ '' i ]
, который недопустим и вызовет [
возвратить ошибку и установить статус выхода на неуспех.[
или echo
были переопределены, чтобы сделать, чему-то еще нравится, играют мелодию или перезагружают компьютер.В целом, та команда не имеет смысла и была, вероятно, записана в единственном намерении смущения Вас.
Хорошо. Я - новичок удара, но: Хотя Ваш вопрос ясен, я не абсолютно уверен, что получаю то, что Вы просите. Это, возможно, от метки. Скажите раз так.
TEST IF "echo hi > /dev/null" is success
[ `echo hi` > /dev/null ]
| | | | | |
| | | | | +--- Last test argument
| | | | +--------------- Redirect standard out to /dev/null
| | | +----------------- Backtick - End Command Substitution
| | +--------------------- echo hi
| +------------------------- Backtick - Start Command Substitution
+--------------------------- Test
Если или эхо или сбои перенаправления, протестируйте сбой, еще успех.
Когда команда выполняется, она имеет код выхода, показывающий успех, 0
, или ошибка <> 0
. Таким образом, если любой сбои все перестало работать.
Шаблон "[ ... ]"
не как в if (foo == bar)
, но [
на самом деле команда, которые требуют ]
как длятся аргумент.
Это также разъясняется почему одно пространство потребности после и прежде [
и ]
.
< foo tr a b > bar
илиecho>&2 error
например. – Stéphane Chazelas 05.04.2013, 15:16[
команда, обычно встроенная какecho
или:
. См. этот ответ на другой вопрос о[
– Stéphane Chazelas 05.04.2013, 16:09