我正在写一个 Bash
运行 Oracle
的脚本数据库通过 sqlplus
:
#!/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 环境变量,我想用它的值代替;同时$log
在 v$log
不应扩展,因为它是 sqlplus
中使用的值命令。
使用“<<'EOF'
”或“<<EOF
”只扩展值或不扩展值。有什么好的方法可以完成我的目标吗?
最佳答案
不确定我是否理解您想要实现的目标,但听起来您应该简单地转义 $
在 $log
和 $vlog
, 以绕过扩展。
关于linux - 有什么方法可以控制 Bash here 文档中的参数扩展吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837923/