【问题标题】:Perl - impdp from perlPerl - 来自 perl 的 impdp
【发布时间】:2015-08-16 07:56:36
【问题描述】:

我无法将 impdp 命令的输出从 system () perl 重定向到文件。

#!/usr/bin/perl
$a="impdp GLS_UCELL_80TC5_DEV/comverse directory=DUMP_DIR_1028704 dumpfile=ACCESS_REGION_VALUES.dmp CONTENT=data_only";
system("$a 1>t.tmp");

但是,将系统命令更改为 system("$a 2>t.tmp") 后,会创建 t.tmp。

我想了解为什么重定向 1>t.tmp 在我的情况下不起作用。

【问题讨论】:

标签: perl


【解决方案1】:

1>t.tmp(或只是>t.tmp)重定向STDOUT。打印到 STDOUT 的任何内容都将在文件中结束。

2>t.tmp 重定向 STDERR。打印到 STDERR 的任何内容都将在文件中结束。

您想捕获程序写入 STDERR 的内容,因此您需要使用后者,或者使用 >t.tmp 2>&1 来重定向两者。

【讨论】:

  • 感谢您的 cmets:) 当我从 shell 脚本执行 impdp 时,我不需要使用 2>t.tmp。 1>.t.tmp 工作正常。我无法理解为什么我需要从 perl prog 编写 2>t.tmp 以及为什么不需要 1>t.tmp 如上所述
  • 正如我已经说过的,您想捕获程序写入 STDERR 的内容,因此您需要重定向 STDERR,这可以使用 2>
猜你喜欢
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多