
Я видел [
команду в Cygwin и Linux /bin
. Всякий раз, когда я ее запускаю, я получаю сообщение об ошибке: missing ]
.
Я никогда не понимал, что делает эта команда, просто однажды я ее нашел и захотел узнать, что она делает (и полезна ли она или нет)
ПРИМЕЧАНИЕ:Я бы проверил man
запись, чтобы получить ответ, но, к сожалению, в ней нет записи для[
решение1
Этоtest
команда.
Например, узнайте, /etc/passwd
существует или нет:
[ -f /etc/passwd ] && echo "Yes" || echo "No"
Обычно вы пишете это следующим образом:
if test -f /etc/passwd
then
echo "Yes"
else
echo "No"
fi
Read
решение2
Вы когда-нибудь видели/замечали условия if в скриптах оболочки? Они имеют вид:
[ -e $FILE ]
В таких случаях функциональность проверки условий обычно встроена в оболочку, интерпретирующую эти скрипты, обычно bash или sh-aliased-bash.
Двоичные файлы, которые вы видите, служат той же цели, но присутствуют для того, чтобы проверки условий можно было использовать в оболочках.безтакая функциональность встроена.
решение3
Квадратные скобки [ — еще один способ вызова test
команды.
Ссылаться наСтраница руководства тестадля получения дополнительной информации :)