Ich habe eine unerwartete Datei namens [
-- eine linke Klammer -- in meiner /bin-Datei auf meinem Mac Powerbook. Ich verwende Catalina. Wenn ich cat
die Datei sehe, sieht sie aus wie Zeug von einer Apple-Zertifizierungsstelle. Das meiste davon ist unlesbar, aber es enthält Text wie
Apple Certification Authority
Und
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)
Irgendeine Idee, was das sein könnte? Kommt mir verdächtig vor – den Fehlermeldungen zufolge, als ob da Quellcode drin wäre. Aber ich möchte es nicht einfach löschen, falls es eine Datei ist, die Apple braucht.
Antwort1
Die öffnende eckige Klammer, [
, ist eine standardmäßige ausführbare Datei, die äquivalent zu ist test
und syntaktischen Zucker beim Schreiben von Shell-Skripten bietet (d. h. sie „sieht gut aus“).
fruit="banana"
if [ banana = "$fruit" ] # "[" really is an executable
then
echo "Yum, yum"
fi
Oder
fruit="banana"
if test pear = "$fruit"
then
echo "Yum, yum"
fi
Diese sind direkt gleichwertig.
In Wirklichkeit implementiert Ihre Shell wahrscheinlich beides [
direkt test
, sodass Ihre Shell den Befehl ausführt, wenn Sie sie aufrufen, anstatt dafür einen separaten Prozess auszuführen. Auch hier ist für Sie als Benutzer kein erkennbarer Unterschied erkennbar.