• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

komisches Programm namens "[" in /bin

  • Ersteller Dunerkahl
  • Erstellt am

Dunerkahl

Gast
Hallo,
ich hab gerade ein merkwürdiges Programm in /bin entdeckt, es heißt einfach nur "[".
Habt ihr sowas auch in eurem /bin-ordner ? Mir erscheint das nämlich unwohl.
Hier noch n Screen:

MfG Zoddl
p.s. ich hab 10.4.6
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Dunerkahl schrieb:
Hallo,
ich hab gerade ein merkwürdiges Programm in /bin entdeckt, es heißt einfach nur "[".
Habt ihr sowas auch in eurem /bin-ordner ? Mir erscheint das nämlich unwohl.
Moin, ja das ist bei mir auch unter /bin vorhanden. Weiß aber auch nicht, wofür das gut sein soll. :eek:

P.S.: Unter Linux (Debian) liegt unter /bin jedenfalls keine eckige Klammer rum, das muss was Darwin-spezifisches sein. s.u. ...
 
Zuletzt bearbeitet:

kauan

Stina Lohmann
Registriert
31.12.05
Beiträge
1.043
quarx schrieb:
P.S.: Unter Linux (Debian) liegt unter /bin jedenfalls keine eckige Klammer rum, das muss was Darwin-spezifisches sein.
Debian Linux Server, auf dem ich Zugang habe:
Code:
gna$ which [
/usr/bin/[

Das Ding ist dasselbe wie der Command test.

Code:
gna$ if test -f moo.txt; then echo foo; else echo bar; fi
foo
gna$ if [ -f moo.txt ]; then echo foo; else echo bar; fi
foo

Gruss
Jonathan
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Ah, merci. An "which" zu denken war gestern zu spät... :)
 

kauan

Stina Lohmann
Registriert
31.12.05
Beiträge
1.043
Hehe ;)
fuer mich erschliesst sich aber die Bedeutung der zweiten Klammer nicht ganz. Okay, eine Klammer darf bei der Shell-Syntax nicht nur geoeffnet und nicht geschlossen werden, aber wieso ist denn das Zeichen ] an dieser Stelle erlaubt..? Wird das von Test einfach ignoriert?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Von test nicht, aber anscheinend von [. In der info-Page von test steht Folgendes:
`test' has an alternate form that uses opening and closing square
brackets instead a leading `test'. For example, instead of `test -d
/', you can write `[ -d / ]'. The square brackets must be separate
arguments; for example, `[-d /]' does not have the desired effect.
Since `test EXPR' and `[ EXPR ]' have the same meaning, only the former
form is discussed below.
'[EXPR]' sieht - finde ich - schöner aus als 'test EXPR'. ;)
 

Dunerkahl

Gast
Aber wer kommt auf die Idee, ein Programm "[" zu nennen? Naja ^^
 

Nogger

Damasonrenette
Registriert
05.11.05
Beiträge
494
Auf die Idee kommt man, wenn man "if [ wasimmer ]" statt "if test wasimmer" benutzen möchte?

"test" ist nichts eingebautes, "test" ist ein Programm. /bin/test. "if 'programm liefert "wahr" zurück', dann mach wasimmer" hat den großen vorteil, daß die Testbedingung beliebig komplex sein kann. if Programm-"transferiere daten und schicke mail" war errfolgreich, dann...
 

lodger

Normande
Registriert
06.09.05
Beiträge
578
Nogger schrieb:
Auf die Idee kommt man, wenn man "if [ wasimmer ]" statt "if test wasimmer" benutzen möchte?

"test" ist nichts eingebautes, "test" ist ein Programm. /bin/test. "if 'programm liefert "wahr" zurück', dann mach wasimmer" hat den großen vorteil, daß die Testbedingung beliebig komplex sein kann. if Programm-"transferiere daten und schicke mail" war errfolgreich, dann...

Hinzu kommt, das UNIX Systeme ihre Wurzeln im Mainframe Bereich haben. Und die waren seinerzeit oft via Fernschreiber angebunden. Da war die Schreibweise mit der eckigen Klammer durchaus eine Erleichterung bei der Tipparbeit. So seltsam das kingt, aber viele UNIX Befehle haben daher recht kurze namen: cp statt copy, ls statt list usw. usf.

Etwas Off-Topic, aber sehr nett zu lesen ist übrigens die wahre Geschichte des vi Editors ;)