Bash kleiner als Null

Hallo zusammen,
Ich bin mal wieder zu blöd für Bash. Ich möchte: Falls amount_pages

0 ist eine Zahl und kein Text. Also dürfen dort keine Anführungszeichen hin:

if [$amount_squarepages -lt 0]
then
   …
fi

Vielen Dank für die Antwort. Leider ist das Problem nicht gelöst:

How many squared spare sheets do you want at the end of your new script? 1
scriptscript.sh: Zeile 102: [: -lt: Einstelliger (unärer) Operator erwartet.

Aktueller code ist:

100 #ask the user how many spare sheets he wants after the document
101 read -e -p "How many squared spare sheets do you want at the end of your new script? " amount\_sparepages
102 if [$amount\_squarepages -lt 0]; then
103 amount\_sparepages=0
104 fi

lg
Kalsan

Hi,

How many squared spare sheets do you want at the end of your
new script? 1
scriptscript.sh: Zeile 102: [: -lt: Einstelliger (unärer)
Operator erwartet.

Der Fehler kommt wenn die Variable leer ist! (Nicht existiert)

Aktueller code ist:

100 #ask the user how many spare sheets he wants after the
document
101 read -e -p "How many squared spare sheets do you want at
the end of your new script? " amount_sparepages
102 if [$amount_squarepages -lt 0]; then
103 amount_sparepages=0
104 fi

Das kann ja auch nicht gehen, da amount_sparepages != $amount_squarepages ist,
$amount_squarepages ist leer (existiert nicht daher der obrige Fehler).

Gruß XXD

Vielen Dank für deine Antwort. Mir ist unklar, was deine Antwort im Konkreten bedeutet.
Ich habe jetzt mal beim read-Befehl ein $-Zeichen hinzugefügt:

read -e -p "How many squared spare sheets do you want at the end of your new script? " $amount\_sparepages

Fehler:

scriptscript.sh: Zeile 102: [: -lt: Einstelliger (unärer) Operator erwartet.

Oder dann halt beim
if [amount_squarepages -lt 0]; then

Fehler:

scriptscript.sh: Zeile 102: [: amount\_squarepages: Ganzzahliger Ausdruck erwartet.

Ich habe keine Ahnung von Bash. Was muss ich konkret machen?
lg,
Kalsan

Hi,

Ich habe keine Ahnung von Bash. Was muss ich konkret machen?

Du speicherst in „amount_ spare pages“ deine Zahl, und fragst im if test die Variable amount_ square pages ab, die gibt es aber nicht.

Korregierte Form:

read -p "How many squared spare sheets do you want at the end of your new script? " amount\_sparepages 

if [$amount\_sparepages -lt 0]; then 
 amount\_sparepages=0
fi

Übernimm das mal eins zu eins und führ es aus!

Gruß XXD

1 Like

Meine Kollegen neben mir lachen sich schlapp. Ich sitz mit hochrotem Kopf am Laptop und schäm’ mich in Grund und Bode :wink:
Vielen Dank, jetzt funktioniert’s!