2016-06-21 10 views
1

Ich versuche ein Problem zu lösen, das ich brauche, um Benutzereingaben an das Dokument zu übergeben und seinen Wert zu wiederholen. Ich kann nur eine Sache zur Zeit, entweder Variable oder Schleife übergeben. Beide funktionieren nicht.Übergeben Sie eine Eingabevariable und führen Sie sie in das Dokument ein. Bash script

Unten ist mein Code.

bash <<START 
echo "Input :$1" 
for i in 1 2 3 4 5 
do 
echo "For Loop Value : $i" 
done 
START 

Während des Laufens dieses Skript ./heredoc "asd" im bin unten Ausgang bekommen

Input :asd 
For Loop Value : 
For Loop Value : 
For Loop Value : 
For Loop Value : 
For Loop Value : 

Wie Sie den Wert von i nicht kommt, wird sehen können.

Aber wenn ich ein einzelnes Angebot hinzufügen gibt es unter Ausgabe.

Input : 
For Loop Value :1 
For Loop Value :2 
For Loop Value :3 
For Loop Value :4 
For Loop Value :5 

Wie kann ich es lösen, so dass mein Eingangswert sowie Loop-Wert in Ausgabe kommen sollte.

Vielen Dank im Voraus

+0

versucht Bash << 'START', aber in diesem Fall habe ich meine Benutzereingabe Variablenwert wie in post erwähnt..Thanks sowieso. – vinay

+2

Oh, Entschuldigung! dann entgehen Sie den Erweiterungen: 'echo" For Loop Wert: \ $ i "' –

+0

"gniourf_gniourf" Sie sind Genie..danke ... das hat funktioniert ... – vinay

Antwort

1

Sie übergeben nichts. $1 wird der erste Positionsparameter der laufenden Shell sein, wahrscheinlich eine leere Zeichenfolge.

Dies wird tun, was Sie wollen:

variable="hello there" 

bash <<SCRIPT_END 
echo "Input: $variable" 
for i in 1 2 3 4 5; do 
    echo "For Loop Value: \$i" 
done 
SCRIPT_END 

Sie die $i im Hier Dokument entkommen müssen, da sie sonst mit dem Wert einer Variablen i in der aktuellen Umgebung (ein leere interpoliert werden würden string wenn nicht gesetzt).

Beachten Sie, dass tun wollen dies für $variable passieren (was man „auf die hier-Dokument vorbei“ nennen), und deshalb können wir nicht nur die ganze Sache Einzel zitieren (durch die erste SCRIPT_END Wechsel zu 'SCRIPT_END').

Verwandte Themen