У меня есть неожиданный файл с именем [
-- левая скобка -- в моем файле /bin на моем Mac Powerbook. Я использую Catalina. Когда я открываю cat
файл, он выглядит как что-то вроде центра сертификации Apple. Большая его часть нечитаема, но в нем есть текст вроде
Apple Certification Authority
и
PROGRAM:test PROJECT:shell_cmds-207.40.1 ??????i@[]missing ]!unexpected operator%s: %s%sclosing paren expectedargument expected%s: bad number%s: out of range)
Есть идеи, что это может быть? Мне кажется подозрительным — судя по сообщениям об ошибках, в нем какой-то исходный код. Но не хочу просто удалять, вдруг это файл, который нужен Apple.
решение1
Открытая квадратная скобка, [
, является стандартным исполняемым файлом, эквивалентным test
, который обеспечивает синтаксический сахар при написании сценариев оболочки (т.е. он «выглядит красиво»).
fruit="banana"
if [ banana = "$fruit" ] # "[" really is an executable
then
echo "Yum, yum"
fi
Или
fruit="banana"
if test pear = "$fruit"
then
echo "Yum, yum"
fi
Они полностью эквивалентны.
На самом деле ваша оболочка, вероятно, реализует и то, [
и test
другое напрямую, так что когда вы их вызываете, это ваша оболочка выполняет команду, а не запускает отдельный процесс для этого. Опять же, никакой заметной разницы для вас, пользователя.