我正在尝试运行以下命令:
postfix status > tmp
但是生成的文件从未写入任何内容,而输出仍然会发送到终端。
我已经尝试将以下内容添加到混音中,甚至在重定向输出之前使用echo进行回音,但似乎没有任何效果
postfix status 2>&1 > tmp
其他命令没问题。
答案 0 :(得分:5)
script -c 'postfix status' -q tmp
答案 1 :(得分:1)
它看起来像写入终端而不是stdout。我不明白'回声'的管道,你的意思是管道'猫'?
我认为您可以随时使用'script'命令,记录您在终端上看到的所有内容。你可以运行'script',然后运行你的命令,然后退出。
答案 2 :(得分:0)
感谢另一位SO用户,他们删除了他们的答案,所以现在我不能不感谢,我被放在了正确的轨道上。我在这里找到了答案:
http://irbs.net/internet/postfix/0211/2756.html
因此,对于那些希望能够捕获posfix响应的人,我使用了以下方法。
创建一个脚本,使输出转到您希望的位置。我是这样做的:
#!/bin/sh
cat <<EOF | expect 2>&1
set timeout -1
spawn postfix status
expect eof
EOF
然后我运行了脚本(比如script.sh)并可以从那里进行管道/重定向。即script.sh&gt; file.txt的
我需要这个用于PHP,所以我可以使用exec并实际得到响应。