If / Else-Anweisungen Linux, Vi, Simple Scripts

738
Ecojin

Zuerst habe ich versucht, Antworten auf meine Fragen zu finden, und es ist wirklich schwierig für einen Neuling, seine Fragen so zu formulieren, dass Online-Ergebnisse mit auf die jeweilige Situation bezogenen Antworten erzielt werden.

Das wird gesagt.

Ich versuche, ein einfaches Programm zu schreiben, in dem Sie gefragt werden, welchen Text Sie wiederholen möchten (und wie oft Sie den Text wiederholen möchten. Ich habe es abgesehen von einer der Variablen (wie viele Wiederholungen), falls vorhanden Wenn Sie Text anstelle von Zahlen eingeben, schlägt der Vorgang fehl. Wie füge ich eine If / Else-Anweisung hinzu, die das Skript nicht beschädigt?

#!/bin/bash echo "Please input text you wish to print." read text echo "Please input number of times you wish to print text." read number if for i in `seq $number`; do echo "$text" else echo "Try again with valid input."; done 

Dieses Skript funktioniert jedoch einwandfrei.

#!/bin/bash echo "Please input text you wish to print." read text echo "Please input number of times you wish to print text." read number for i in `seq $number`; do echo "$text"; done 
-1
Bitte formatieren Sie Ihre Frage neu und testen Sie das von Ihnen angegebene Beispiel. Es gibt eine Markdown-Bearbeitungshilfe unter dem Fragezeichen in der rechten oberen Ecke des Bearbeitungsfelds Thor vor 6 Jahren 1
Diese Site verwendet die [Markdown-Formatierung] (https://stackoverflow.com/editing-help). xenoid vor 6 Jahren 0

1 Antwort auf die Frage

1
xenoid

Um zu testen, ob Ihre Variable eine Zahl ist, siehe hier .

Ihre ifAussage hat keine Bedingung ... Die richtige Syntax lautet:

if [ some_condition ] then # the code to execute if true (your `for` loop) else  # the code to execute if false (optional) fi # "if" backwards