Ich stelle eine Verbindung zur Oracle-Datenbank her, löse eine Abfrage und weise die Ausgabe der Variablen zu. Wenn ich jedoch den Wert der Variablen wiedergebe, wird sie nicht richtig gedruckt.
count=`sqlplus -s $configuser/$configpass@$ORACLE_SID <<END
set pagesize 0 feedback off verify off heading off echo off;
select max(cust_id) from cutomers
exit;
END`
echo $count
Die Abfrage gibt das korrekte Ergebnis zurück, wenn sie in der Datenbank ausgelöst wird. Die Variable "count" hat jedoch einen falschen Wert.
Antworten:
Das abschließende Here-Doc-Wort muss das einzige Zeichen in der Zeile sein: Einzug nicht zulässig. Verwenden Sie auch
$()
anstelle von Backticks - sie sind verschachtelbar.http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents
quelle
<<-END
Notation verwenden. Keine Leerzeichen, TABS!quelle
Sie müssen das Semikolon an der richtigen Stelle verwenden.
quelle
END
am Ende bündig nach links sein, ohne Leerzeichen davor.