SQL*Plus 版本未在临时文件中打印

SQL*Plus 版本未在临时文件中打印

ssh我正在尝试执行下面的 Unix 脚本,使用连接到 Unix 终端的命令从 Windows 命令提示符获取 Oracle 版本。

#!/use/bin/ksh
Freport=/tmp/test.txt
cd /usr/oracle2/product/11.2.0/bin
echo "Begin" > $Freport
set +x
/usr/oracle2/product/11.2.0/bin/sqlplus -V >> $Freport
set -x
pwd >> $Freport
echo "Completed" >> $Freport

Windows 命令提示符输出:

Begin
/usr/oracle2/product/11.2.0/bin
Completed

相同的脚本在 Unix 服务器中运行并得到以下输出。

腻子输出:

Begin

SQL*Plus: Release 11.2.0.1.0

/usr/oracle2/product/11.2.0/bin
Completed

我想在 Windows 命令提示符输出中打印 Oracle 版本。

Windows命令提示符执行:

C:\programfiles\PUTTY>putty.exe -ssh uname@ip -pw pwd -m windowsscriptpath/test.sh

知道我该如何解决这个问题吗?

答案1

我猜想将sqlplus -V其输出发送到 stderr (文件描述符 2)而不是 stdout (文件描述符 1)。为了重定向 stderr,请使用2>>

sqlplus -V 2>> /tmp/test.txt

相关内容