Łączę się z bazą danych Oracle, odpalam zapytanie i przypisuję dane wyjściowe do zmiennej. Ale kiedy echo wartości zmiennej nie jest drukowane poprawnie.
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
Zapytanie zwraca poprawny wynik po uruchomieniu w bazie danych. Ale zmienna „count” ma niepoprawną wartość.
Odpowiedzi:
Końcowe słowo tutaj-doc musi być jedynymi znakami w linii: niedozwolone jest wcięcie. Użyj także
$()
zamiast backticks - można je zagnieżdżać.http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents
źródło
<<-END
notacją możesz także korzystać z kart . Nie spacje, TABS!źródło
Musisz użyć średnika we właściwym miejscu.
źródło
END
koniec musi znajdować się równo z lewej strony, bez białych znaków przed nim.