shell EOF注意點

當sqlplus與shell交互的時候我們這麼用

su - oracle -c "sqlplus / as sysdba<<EOF
select * from gv($instance);
exit;
EOF"

這個程序看起來沒什麼問題,真正執行的時候會報錯。


爲什麼?

因爲這種方式,“內容”中的東西是被解析的

所以$instance沒有值,這裏就只能看到gv

這麼寫就沒錯了

 su - oracle -c "sqlplus / as sysdba<<\"EOF\"
select * from gv\$instance;
exit;
EOF"

在EOF前後加引號,並在$前加轉義字符。

發佈了24 篇原創文章 · 獲贊 37 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章