• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] [Skript] Zu viele Argumente für test

Calvin

Hacker
Hi allerseits,

ich mache gerade die ersten Schritte mit Skript-Programmierung. Mein Skript habe ich mal auf folgendes Minimalskript reduziert:

Code:
#!/bin/bash

EINGABE=""

until test $EINGABE = "x" -o $EINGABE = "X"
do
  echo -n "> "
  read EINGABE
done

Wenn ich das Skript starte, bekomme ich für die Zeile until test... beim ersten Schleifendurchlauf folgende Fehlermeldung:

Code:
./testskript: line 5: test: too many arguments

Warum erscheint diese Meldung? Wie kriege ich sie weg? Und warum erscheint die nur beim ersten Durchlauf?
 

abgdf

Guru
$EINGABE wird beim ersten Mal zu "" expandiert.
Daher erhält test
Code:
test = "x"
Das klappt nicht.

Gruß
 
OP
C

Calvin

Hacker
Ah, das klingt logisch :idea:

Das heißt, ich kann das nur lösen, wenn ich EINGABE vorher irgendeinen beliebigen Wert zuweise? Oder gibt es noch eine andere Möglichkeit?
 
Das heißt, dass du immer "" um eine Variable setzen sollst, also
Code:
until [ "$eingabe" == "y" -o "$eingabe" == "ach was" ]; do
    ...
done;
Mehr braucht's da gar nicht.
 
Oben