BBS水木清华站∶精华区

发信人: hustluby (luby), 信区: Linux        
标  题: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 18:27:47 2000) 
 
 
tcpserver -u **** -g **** 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | splogger... 
                                                           ~~~~ 
此处,2>&1 表示什么意思? 
如果是将错误输出重定向,则为 2> 
如果是将标准输出和错误输出都重定向,则为 &> 
那么这个2>&1呢?不是重定向,那是什么呢? 
 
请赐教,thx. 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.69.205.91] 
发信人: hellguard (小四), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 19:21:18 2000) 
 
意思是把stderr重定向到stdout呀。其他的你说的都对。 
【 在 hustluby (luby) 的大作中提到: 】 
 tcpserver -u **** -g **** 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | splogger... 
 此处,2>&1 表示什么意思? 
 如果是将错误输出重定向,则为 2> 
 如果是将标准输出和错误输出都重定向,则为 &> 
 那么这个2>&1呢?不是重定向,那是什么呢? 
 请赐教,thx. 
 
 
-- 
 
            也许有一天,他再从海上蓬蓬的雨点中升起, 
            飞向西来,再形成一道江流,再冲倒两旁的石壁, 
            再来寻夹岸的桃花。然而,我不敢说来生,也不敢信来生...... 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.73.87.125] 
发信人: hustluby (luby), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 20:09:37 2000) 
 
试编一小段程序如下: 
 
#inlcude <stdio.h> 
int main() 

        fprintf(stderr, "I'm wrong!\n"); 
        fprintf(stdout, "I'm right!\n"); 

 
编译后运行 ./a.out 2>&1 >1.txt 
 
如果如你所说,那么这应该表示把stderr重定向到stdout, 
之后是否表示再将stdout重定向到1.txt? 
如果是这样,1.txt中应为:I'm wrong! 
                         I'm right! 
可是为何实际该文件中仅有 I'm right! 
而在屏幕上却输出了I'm wrong! 
thx!!! 
 
【 在 hellguard (小四) 的大作中提到: 】 
 意思是把stderr重定向到stdout呀。其他的你说的都对。 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.69.205.91] 
发信人: flyriver (江~~麦嘎得), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 20:17:10 2000) 
 
 
【 在 hustluby (luby) 的大作中提到: 】 
 试编一小段程序如下: 
 #inlcude <stdio.h> 
 int main() 
 { 
         fprintf(stderr, "I'm wrong!\n"); 
         fprintf(stdout, "I'm right!\n"); 
 } 
 编译后运行 ./a.out 2>&1 >1.txt 
 
      ./a.out > 1.txt 2>&1 
 
 如果如你所说,那么这应该表示把stderr重定向到stdout, 
 之后是否表示再将stdout重定向到1.txt? 
 如果是这样,1.txt中应为:I'm wrong! 
 ................... 
 
-- 
    Nothing but UNIX. 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.67.183] 
发信人: prentice (嘿嘿), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 20:20:40 2000) 
 
请问哪里有qmail的原代码。qmail-1.03.tgz好象没有原代码 
谢谢 
【 在 flyriver (江~~麦嘎得) 的大作中提到: 】 
       ./a.out > 1.txt 2>&1 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.69.206.187] 
发信人: cybergene (基因~十月的天空~~), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 20:33:32 2000) 
 
【 在 prentice (嘿嘿) 的大作中提到: 】 
 请问哪里有qmail的原代码。qmail-1.03.tgz好象没有原代码 
 谢谢 
 
那就是辕马。 
 
-- 
******************************************************************** 
            I came, I saw, and I deleted all your files... 
******************************************************************** 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.204.7.234] 
发信人: hustluby (luby), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 20:39:30 2000) 
 
thx,I got the intended result. 
 
but, 当我安装vpopmail时,其安装文件里有这样一行: 
/home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null 
 
why? what does it mean? 
如果要将错误输出与标准输出都定向到/dev/null, 
为什么不用 ... > /dev/null 2>&1 呢? 
 
【 在 flyriver (江~~麦嘎得) 的大作中提到: 】 
       ./a.out > 1.txt 2>&1 
 
 
-- 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.69.205.91] 
发信人: scaner (L3), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 22:18:29 2000) 
 
 |两个优先极是不一样了.  
【 在 flyriver (江~~麦嘎得) 的大作中提到: 】 
       ./a.out > 1.txt 2>&1 
 
 
-- 
一杯酒, 一首歌, 一辈子, 一场梦 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.205.10.77] 
发信人: flyriver (江~~麦嘎得), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Wed Oct 11 22:39:50 2000) 
 
【 在 hustluby (luby) 的大作中提到: 】 
 thx,I got the intended result. 
 but, 当我安装vpopmail时,其安装文件里有这样一行: 
 /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null 
 why? what does it mean? 
 如果要将错误输出与标准输出都定向到/dev/null, 
 为什么不用 ... > /dev/null 2>&1 呢? 
 
    一般来说错误信息都是从stderr输出的。教本里面的那 
句话的意思是先把stderr定向到stdout,而仅仅把stdout定 
向到/dev/null。于是你只看到错误信息,而且是从stdout 
出来的错误信息。至于为什么这样做,可能是为了进一步的 
重定向用途吧。例如你可以用grep对输出的错误信息进行筛 
选。 
 
举个例子。 
 
$ cat hehe.sh 
#!/bin/sh 
echo "stdout" 
echo "stderr output" >&2 
 
$ ./hehe.sh 2>&1 >/dev/null 
stderr output 
$ ./hehe.sh 2>&1 >/dev/null | wc - 
      1       2      14 - 
 
    重定向的原理也不复杂,就是一个dup2()调用而已。 
 
-- 
    Nothing but UNIX. 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.67.183] 
发信人: hellguard (小四), 信区: Linux        
标  题: Re: tcpserver问题 
发信站: BBS 水木清华站 (Thu Oct 12 12:14:21 2000) 
 
重定向的顺序问题 
 
2>&1 1> out.txt 和 1> out.txt 2>&1 不一样。 
shell在解释执行的时候,有区别,后一种方式导致stdout、stderr最 
终重定向到了out.txt,前一种方式仅仅是stdout重定向到out.txt。 
【 在 hustluby (luby) 的大作中提到: 】 
 试编一小段程序如下: 
 #inlcude <stdio.h> 
 int main() 
 { 
         fprintf(stderr, "I'm wrong!\n"); 
         fprintf(stdout, "I'm right!\n"); 
 } 
 编译后运行 ./a.out 2>&1 >1.txt 
 如果如你所说,那么这应该表示把stderr重定向到stdout, 
 之后是否表示再将stdout重定向到1.txt? 
 如果是这样,1.txt中应为:I'm wrong! 
 ................... 
 
-- 
 
            也许有一天,他再从海上蓬蓬的雨点中升起, 
            飞向西来,再形成一道江流,再冲倒两旁的石壁, 
            再来寻夹岸的桃花。然而,我不敢说来生,也不敢信来生...... 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.73.87.125] 

BBS水木清华站∶精华区