Bash here 文档中有什么方法可以控制参数扩展吗?

Is there any method to control parameter expansion in Bash here document?

我正在编写一个 Bash 脚本,它通过 sqlplus 操作 Oracle 数据库:

#!/bin/bash -x

......
sqlplus / as sysdba <<'EOF'
select group#,members,bytes/1024/1024,status from v$log;
alter database add logfile group 4 ('/data/oracle/oradata/$ORACLE_SID/redo04.log') size 300M;
......
exit

$ORACLE_SID是一个bash环境变量,我想用它的值代替;而 v$log 中的 $log 不应扩展,因为它是 sqlplus 命令中使用的值。

使用“<<'EOF'”或“<<EOF”只扩展值或不扩展值。有什么好的方法可以完成我的目标吗?

不确定我是否理解您想要实现的目标,但听起来您应该简单地转义 $log$vlog 中的 $ 以绕过扩展。