请教shell下>和|的区别

sh/bash/dash/ksh/zsh等Shell脚本
回复
love_ai88
帖子: 79
注册时间: 2010-05-27 10:26
送出感谢: 0
接收感谢: 0

请教shell下>和|的区别

#1

帖子 love_ai88 » 2011-03-24 21:11

>和|都可以用来将前者的输出转成后者的输入,但是具体有什么区别么

比如man gcc|wc -l可以正确执行,可是man gcc>wc -l就无法执行,说no manual entry for -l

谢谢~~
Acer Aspire 4738G
i5,6370M,2G,500G
Ubuntu 11.04
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: 请教shell下>和|的区别

#2

帖子 aerofox » 2011-03-24 21:14

| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。
love_ai88
帖子: 79
注册时间: 2010-05-27 10:26
送出感谢: 0
接收感谢: 0

Re: 请教shell下>和|的区别

#3

帖子 love_ai88 » 2011-03-24 22:51

aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
Acer Aspire 4738G
i5,6370M,2G,500G
Ubuntu 11.04
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 请教shell下>和|的区别

#4

帖子 fnan » 2011-03-25 8:55

love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
黄美姬
论坛版主
帖子: 8428
注册时间: 2009-10-08 11:15
来自: 大城市铁岭
送出感谢: 0
接收感谢: 1 次

Re: 请教shell下>和|的区别

#5

帖子 黄美姬 » 2011-03-25 9:26

fnan 写了:
love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0
这时不能用ctrl+C :em20
我们是命运的妓女,它把我们都嫖了

N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
love_ai88
帖子: 79
注册时间: 2010-05-27 10:26
送出感谢: 0
接收感谢: 0

Re: 请教shell下>和|的区别

#6

帖子 love_ai88 » 2011-03-25 11:23

fnan 写了:
love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0

我的意思是说>后面不能直接跟一个命令了是么
Acer Aspire 4738G
i5,6370M,2G,500G
Ubuntu 11.04
头像
tenzu
论坛版主
帖子: 36913
注册时间: 2008-11-21 20:26
送出感谢: 0
接收感谢: 21 次

Re: 请教shell下>和|的区别

#7

帖子 tenzu » 2011-03-25 13:13

哥,你好好看看鸟哥私房菜吧。。。
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 请教shell下>和|的区别

#8

帖子 fnan » 2011-03-25 17:59

黄美姬 写了:
fnan 写了:
love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0
这时不能用ctrl+C :em20
可以 ctl+z嘛 :em05
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 请教shell下>和|的区别

#9

帖子 fnan » 2011-03-25 18:03

love_ai88 写了:
fnan 写了:
love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0

我的意思是说>后面不能直接跟一个命令了是么
> 是输出重定向,重定向了还是输出, 命令等待的是输入, > 后加命令是一种逻辑错误。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
love_ai88
帖子: 79
注册时间: 2010-05-27 10:26
送出感谢: 0
接收感谢: 0

Re: 请教shell下>和|的区别

#10

帖子 love_ai88 » 2011-03-25 23:39

tenzu 写了:哥,你好好看看鸟哥私房菜吧。。。

呵呵,就是最近在看么
Acer Aspire 4738G
i5,6370M,2G,500G
Ubuntu 11.04
love_ai88
帖子: 79
注册时间: 2010-05-27 10:26
送出感谢: 0
接收感谢: 0

Re: 请教shell下>和|的区别

#11

帖子 love_ai88 » 2011-03-25 23:39

fnan 写了:
love_ai88 写了:
fnan 写了:
love_ai88 写了:
aerofox 写了:| 是管道,通俗地说是把前者的输出转成后者的输入。
> 是改向,是把输出存到 > 号后面给出的文件中。

你的意思是说>的后面只能跟文件么
别忘了linux 下所有设备都是文件,试试这个就明白了:打开两个终端,在第二个写上 man gcc > /dev/pts/0

我的意思是说>后面不能直接跟一个命令了是么
> 是输出重定向,重定向了还是输出, 命令等待的是输入, > 后加命令是一种逻辑错误。

哦,原来如此,谢了~~
Acer Aspire 4738G
i5,6370M,2G,500G
Ubuntu 11.04
回复

回到 “Shell脚本”