gpt4 book ai didi

bash - 进程替换 - tr 表示 'extra operand/dev/fd/63'

转载 作者:行者123 更新时间:2023-11-29 09:48:44 26 4
gpt4 key购买 nike

我很难理解流程替换。据我所知,

echo abcd | tr -d 'b'
tr -d 'b' <(echo abcd)

应该都给出相同的输出。但是第一个有效(输出是'acd')但是第二个说

tr: extra operand '/dev/fd/63'

这是为什么? tr 不只是通过管道接收“abcd”,而不是“/dev/fd/63”吗?

最佳答案

进程替换的工作方式是,Bash 将替换 <(echo abcd)与(例如)/dev/fd/63 ,最常见的 *nix 实用程序会将其视为文件名并打开而不是标准输入。 tr , 但是,接受文件名参数;它接受标准输入。

传递<(echo abcd)的结果在标准输入上,您可以使用另一个 < :

tr -d b < <(echo abcd)

关于bash - 进程替换 - tr 表示 'extra operand/dev/fd/63',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com