Saya terhubung ke database oracle dan menembakkan kueri dan menetapkan output ke variabel Tapi ketika saya menggemakan nilai variabel itu tidak bisa dicetak dengan benar.
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
Permintaan mengembalikan hasil yang benar ketika dipecat pada basis data. Tetapi variabel "menghitung" memiliki nilai yang salah.
Jawaban:
Kata terminasi di sini-doc harus menjadi satu-satunya karakter di telepon: indentasi tidak diizinkan. Selain itu, gunakan
$()
alih-alih backticks - mereka dapat bersarang.http://www.gnu.org/software/bash/manual/bashref.html#Here-Documents
sumber
<<-END
notasi. Bukan spasi, TABS!sumber
Anda harus menggunakan titik koma di tempat yang tepat.
sumber
END
pada akhirnya harus rata ke kiri, tanpa spasi di depannya.