加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 为什么这个echo结构不起作用?

发布时间:2020-12-15 22:17:22 所属栏目:安全 来源:网络整理
导读:当我这样做: $/bin/echo 123 | /bin/echo 我没有o / p.这是为什么? 解决方法 你问为什么它不起作用.事实上,它确实有效;它完全按照你的要求去做.显然这不是你所期望的.我想你打算打印123,但你实际上并没有这么说. (注意:“stdin”是标准输入;“stdout”是
当我这样做:

$/bin/echo 123 | /bin/echo

我没有o / p.这是为什么?

解决方法

你问为什么它不起作用.事实上,它确实有效;它完全按照你的要求去做.显然这不是你所期望的.我想你打算打印123,但你实际上并没有这么说.

(注意:“stdin”是标准输入;“stdout”是标准输出.)

/ bin / echo 123 | /斌/回声

这是发生了什么. echo命令使用参数123执行.它将“123”,后跟换行符写入其stdout.

stdout通过管道(|)重定向到第二个echo命令的stdin.由于echo命令忽略了它的标准输入,因此静静地丢弃第一个回声的输出.由于您没有给第二个echo命令任何参数,因此它不会打印任何内容. (实际上,没有参数的/ bin / echo通常会打印一个空行;你看到了吗?)

通常,管道(|)与过滤器一起使用,程序从stdin读取并写入stdout.猫可能是最简单的过滤器;它只是读取它的输入并将其保持不变地写入其输出(这意味着某些命令| cat可以写成只是某个命令).

一个非平凡过滤器的例子是rev,它将stdin复制到stdout,同时反转每行中的字符.

echo 123 | rev

版画

321

rev是一个过滤器;回声不是. echo确实打印到stdout,所以将它放在管道的左侧是有意义的,但它不会从stdin中读取,因此在管道的右侧使用它是没有意义的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读