LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 920|回复: 5

这个echo ""是起什么做用的?是如何起做用的?

[复制链接]
发表于 2003-9-29 01:21:55 | 显示全部楼层 |阅读模式
看图吧.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-9-29 01:49:58 | 显示全部楼层
find . -name "*.txt" -print|xargs echo ""

find . -name "*.txt"|xargs
唯一的差别就是前面多了个空格!
如:
[/home/javalee/myshell]find . -name "lx*"|xargs
./lx1 ./lxf ./lxc ./lxd ./lxb ./lxe ./lxg ./lxh ./lxk
[/home/javalee/myshell]find . -name "lx*"|xargs echo
./lx1 ./lxf ./lxc ./lxd ./lxb ./lxe ./lxg ./lxh ./lxk
[/home/javalee/myshell]find . -name "lx*"|xargs echo ""
./lx1 ./lxf ./lxc ./lxd ./lxb ./lxe ./lxg ./lxh ./lxk
而在shell中,echo 是用来显示字符串的,echo ""(空串)和echo的结果也是一样的!
但是如果用ls|echo ""的话,那么ls的标准输出就被""(空串)所替代,结果是啥也看不见!
我认为在这里,echo ""是多余的.因为他没有起到什么作用!
 楼主| 发表于 2003-9-29 09:39:39 | 显示全部楼层
no!
老哥根本就没有仔细看呀
第一个有了echo ""在loglog.log文件中两个文件名是一行,用一个空格来分隔,第二个没有了echo ""在loglog.log文件中两个文件名是分两行的,是用换行符或者回车符来分隔的,
怎么会是没起到做用呢?
echo ""是起到了替换回车符或者换行符的做用,但为什么会如此?
 楼主| 发表于 2003-9-29 09:41:56 | 显示全部楼层
而且也决不多余,如果要求排版格式呢?
发表于 2003-9-29 11:39:41 | 显示全部楼层
他们的区别不是是否有echo "",而是是否执行了xargs!,第一个是通过管道,xargs处理find的输出列表,而第儿个只是输出了find的结果,跟echo ""有什么关系呢?!
[/home/javalee/myshell]find . -name "lx*"
./lx1
./lxf
./lxc
./lxd
./lxb
./lxe
./lxg
./lxh
./lxk
[/home/javalee/myshell]find . -name "lx*"|xargs
./lx1 ./lxf ./lxc ./lxd ./lxb ./lxe ./lxg ./lxh ./lxk
 楼主| 发表于 2003-9-29 12:31:06 | 显示全部楼层
多谢老哥啊,只想到了它的execute作用,没考虑过list的功能.
呵呵,勿怪勿怪.
其实man一下就知道了,毛燥,实乃人生之一大害.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表