将 sqlplus shell 输出重定向到文件

Redirect sqlplus shell output to file

我正在尝试通过以下代码将 sqlplus 输出重定向到一个文件:

#!/bin/bash
    
${ORACLE_HOME}/bin/sqlplus / as sysdba <<-EOF
  select 1 from dual;
  exit
  EOF 
   > test.log

文件已创建,但它是空的。运行此脚本的用户可以在 当前目录,所以没有访问权限问题。

如果我使用 oracles 假脱机命令,它可以工作,但为什么上面的语法不起作用?

EOF 必须结束一行,但您可以在此处文档之前重定向:

#!/bin/bash
    
${ORACLE_HOME}/bin/sqlplus / as sysdba >> test.log <<-EOF
    select 1 from dual;
    exit
EOF

我没有 sqlplus,但用 cat 测试过:

$ cat > derp.txt <<-EOF
        aaa
        bbbb
        cccc
EOF