![如何在标准输入上存储提供给函数的数据?](https://linux22.com/image/109653/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E4%B8%8A%E5%AD%98%E5%82%A8%E6%8F%90%E4%BE%9B%E7%BB%99%E5%87%BD%E6%95%B0%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
> cat b.txt
function first
{
foo=$(SOMEMAGIC)
}
echo nyi | first
>
问题:我们如何将“nyi”字符串赋予函数内的“foo”变量?那么我们如何将通过管道传递给函数的数据传递给函数内的变量呢?
答案1
您可以执行以下操作之一
读取一行标准输入
function first
{
IFS="" read -r foo
}
echo nyi | first
或者
阅读第一个参数
function first
{
foo="$1"
}
first nyi
答案2
您还可以使用cat
消耗输入,然后将其返回到作业中。
$ first () { foo=$(cat); echo b${foo}c; }
$ echo nyi | first
bnyic