我可能遗漏了一些小东西,但是否有可能以符合 POSIX(破折号)的方式实现此语法:
$ ./myApp 2> stderr.txt 1> stdout.txt
我知道你不能使用>&
但必须使用2>&1
但我不想这样做。我有大量数据进入标准输出,我不想解析它来获取我的标准错误。我觉得我错过了一些非常简单的东西,但我不能指望它......
现在,当我运行上述命令时,我只得到了几行 stdout (3),但它显示在 stderr 文件中并且 stdout 为空。我也尝试了各种分组方式,但我仍然没有运气。不知道发生了什么...
更新
这是我正在运行的实际命令的格式,以便您可以看到我正在尝试完成的全部效果:
$ LD_PRELOAD=/usr/lib/libtcmalloc.so /usr/bin/time -p myApp -c -f inputFile 2> stderr 1> stdout
这就是我提到我用 () 尝试了多种分组变体的地方。此外,可执行文件myApp
不会分叉。
我认为这个命令会起作用,但我发现不是这样:
$ LD_PRELOAD=/usr/lib/libtcmalloc.so /usr/bin/time -p (myApp -c -f inputFile) 2> stderr 1> stdout