在 AIX 中,当我编写这样的脚本(test.sch)时:
#!/bin/ksh
echo "testing" 2>./r1.log 1>./r2.log
exit 0
如果我执行:
sh -x test.sch
回复是:
cat r1.log
1> ./r2.log
cat r2.log
testing
为什么 r1.log 出现在命令中?
但是如果我改变 shell 中的顺序:
#!/bin/ksh
echo "testing" 1>./r2.log 2>./r1.log
exit 0
文件 r1.log 为空。
cat r1.log
cat r2.log
testing
此代码在其他服务器上运行良好。我必须修复什么配置才能使其正常工作?
不能省略-x标志,因为我使用control-m(这里使用-x)。但我意识到该错误发生在不同的 AIX 服务器上。我想除了改变输出的顺序之外没有解决方案。
set -x
(或相应的 sh -x
,“xtrace”的缩写)打开调试模式。调试模式打印出执行到 .来自 ksh 的 AIX 手册页:
-x
Prints executed commands and their arguments.
这就是为什么您会在日志文件中看到捕获的内容。