我试图得到一个命令的输出,但我不能得到它。 如果我手动运行,它会在屏幕上返回正常的结果。
[root@mymachine ~]# dnsdist -e "topQueries()" 1 Rest 0 100.0%
我试着用dnsdist -e 'topQueries() 2>&1 1> /tmp/abc
。 但是/tmp/abc
仍然是空的。 我不认为screen
命令可以解决它。 有没有人有任何build议?
补充信息:
1rest0 100.0%
是topQueries()的结果。 '-e'表示在dnsdist中执行一个命令。 它看起来像我们访问MySQL然后我们调用一个SQL语句。
rkosegi评论说 ,秩序是重要的。 当你运行:
examplecommand 2>&1 1> /tmp/abc
它采用stderr输出并将其发送到stdout当前正在进行的位置 ,然后将stdout发送到文件。
您可能需要,而不是:
examplecommand 1> /tmp/abc 2>&1
它将stdout发送到文件,然后将stderr发送到stdout当前正在进行的位置 ,即文件。
为了使屏幕和文件/ tmp / abc都具有stderr和stdout,你可以使用tee。
$cat a.sh echo "stderr" >&2 echo "stdout" ./a.sh 2>&1 | tee /tmp/abc stderr stdout $ cat /tmp/abc stderr stdout