4

Я видел как в Cygwin, так и в Linux команду [ в /bin . Всякий раз, когда я запускаю его, я получаю сообщение об ошибке: missing ] .

Я никогда не понимал, что делает эта команда, я однажды обнаружил, что хотел выяснить, что она делает (и является ли она полезной или нет)

ПРИМЕЧАНИЕ. Я бы проверил запись man для ответа, но, к сожалению, в ней нет записи для [

3 ответа3

7

Это test команда.

Например, выясните, существует ли /etc/passwd или нет:

[ -f /etc/passwd ] && echo "Yes" || echo "No"

Регулярно вы пишете это следующим образом:

if test -f /etc/passwd
then
  echo "Yes"
else
  echo "No"
fi
Read 
2

Вы когда-нибудь видели / замечали ли условия в сценариях оболочки? Они имеют форму:
[ -e $FILE ]

В этих случаях функциональность проверки условий обычно встроена в оболочку, интерпретирующую эти сценарии, обычно это bash или sh-aliased-bash.

Двоичные файлы, которые вы видите, служат той же цели, но присутствуют, поэтому проверки состояния могут использоваться в оболочках без встроенной функциональности.

2

[Квадратная скобка - это еще один способ вызова test команды.

Обратитесь к справочной странице теста для получения дополнительной информации :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .