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