echo & cat

echo abc > abc.txt
cat abc.txt > def.txt

两个命令看起来很像,区别只是命令后面的参数,一个是字符串,一个是文件名。

但是这两个命令最近让我很迷糊。之前我想要通过管道把一段字符输出,会写成:echo abc | echo 没有输出,但是想不出哪里有问题。正确到写法是: echo abc | cat

是哪里到问题呢?原因在于echo 不是一个过滤器。echo 后面接受参数, 例如 echo a b c,接受3个参数,输出结果是“a b c“,中间的多个空格被当作是参数的空白符间隔。echo “a b c” 的话就是一个参数。但是echo 只接受参数,不能当作过滤器使用。echo < abc.txt 是不行的。echo abc | echo 自然也不行。cat 是一个过滤器,常用的写法 cat abc.txt 其实是省略了重定向符号(理解成参数也行),完整的应该写成:cat < abc.txt

虽然是两个简单的命令,没有区别清楚的话反倒会让人觉得混乱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值