staging.inyokaproject.org

Frage an Bash-Profis

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

ifish

Avatar von ifish

Anmeldungsdatum:
19. November 2004

Beiträge: 252

Hallo zusammen,

Warum funktioniert:

if [ "$#"="0" ]; then

aber nicht:

if ["$#"="0"]; then

(siehe Leerzeichen hinter bzw. vor den Klammern...)

umarmung Team-Icon

Avatar von umarmung

Anmeldungsdatum:
26. Oktober 2004

Beiträge: 5632

$ ls /usr/bin/[*
/usr/bin/[

Wie du siehst ist [ ein Programm. Gibst du die Zeile ohne Leerzeichen ein, dann wird natürlich versucht, ein ganz anderes Programm auszuführen, welches nicht existiert.

ifish

(Themenstarter)
Avatar von ifish

Anmeldungsdatum:
19. November 2004

Beiträge: 252

umarmung hat geschrieben:

$ ls /usr/bin/[*
/usr/bin/[

Wie du siehst ist [ ein Programm. Gibst du die Zeile ohne Leerzeichen ein, dann wird natürlich versucht, ein ganz anderes Programm auszuführen, welches nicht existiert.[/quote]

Seltsam..
was soll dieses Programm?
Auf der Arbeit habe ich nur die ksh zur Verfügung,
dort existiert
/usr/bin/[

nicht, trotzdem sind die Leerzeichen nach-wie-vor erforderlich...

Nun ja.. ansonsten.. ich nehme es mal hin 😉

mawe

Anmeldungsdatum:
18. November 2004

Beiträge: 172

Hi!

\[[/b] ist wirklich ein Programm, cool 😲 Wusste ich nicht.
\[[/b] ist ja in der bash ein Synonym für test. Man könnte also auch schreiben:

if test "$#"="0" ; then 


Schreibt man aber

if test"$#"="0" ; then


erhält man eine Fehlermeldung, weil test nicht mehr als eigenständiger Befehl erkannt wird. Genau dasselbe passiert bei ["$#...[/b]. Gruß, mawe

ifish

(Themenstarter)
Avatar von ifish

Anmeldungsdatum:
19. November 2004

Beiträge: 252

mawe hat geschrieben:

Hi!

\[[/b] ist wirklich ein Programm, cool 😲 Wusste ich nicht.
\[[/b] ist ja in der bash ein Synonym für test. Man könnte also auch schreiben:

if test "$#"="0" ; then 


Schreibt man aber

if test"$#"="0" ; then


erhält man eine Fehlermeldung, weil test nicht mehr als eigenständiger Befehl erkannt wird. Genau dasselbe passiert bei ["$#...[/b]. Gruß, mawe[/quote] Danke für die Antworten ☺
Nach einem "man test" habe ich herausgefunden, dass "[" eine Form von "test" ist, ganz witzig.. jetzt kann ich es mir, glaube ich, merken jau... 😀

Antworten |