管道读取命令?

Dan*_*nik 2 bash read

我正在尝试使用程序通过管道传输带有特殊字符的字符串(例如HG@eg3,l'{TT\"C!到另一个命令(termux-clipboard-setread。似乎read旨在创建一个临时变量(例如read temp),然后将其传递给另一个命令(例如termux-clipboard-set $temp)。

我想知道是否有更快的方法来使用管道来做到这一点,例如:read | termux-clipboard-set

更新:抱歉,我忘了提及我正在寻找可以在 bash (termux) 上运行的东西。

Ljm*_*art 9

对于bashread不是一个程序。read是一个内置的。简化后,read读取stdin输入并将其分配给变量。内置函数read不会在 上产生任何输出stdout,因此尝试通过管道传输stdout不会产生任何结果。

问题是为什么。根据man页面显示,

用法termux-clipboard-set [text]

文本从标准输入或命令行参数读取。

如果文本是从 读取的stdin,为什么要在前面放一些东西?当然,你可以cat | termux-clipboard-set,但只termux-clipboard-set要这样做就可以了。

  • @DanielKrajnik,您可以很好地重定向 shell 内置函数的输出。您无法重定向“read”的输出,因为它没有输出,而不是因为它是内置的。`echo` 也是大多数 shell 上的内置函数,但它的输出可以很好地重定向。 (5认同)