一定是一件简单的事情。 [编辑] 我正在编写一个 BASH 脚本,使用 HERE 文档将一些语句重定向到 SQL*Plus 命令提示符。
sqlplus -s user/pw@db > $TMPFILE <<EOF
SET ECHO OFF;
SET FEEDBACK OFF;
SET HEADING OFF;
select x
from a_table
where a_field like '%$1%';
EXIT;
EOF
当然这不起作用,因为单引号内没有替换。那么我该怎么做呢?我不能做类似 "'%$1%'"
的事情因为双引号仍然作为 SQL*Plus 的输入并导致错误。
谢谢。
最佳答案
无需修改即可工作
我的简单测试有效:
cat << HERE
$BASHPID
'$BASHPID'
HERE
返回
4608
'4608'
这是因为
关于bash 在 sqlplus + Heredoc 中引用变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201942/