如何在标准输入上存储提供给函数的数据?

如何在标准输入上存储提供给函数的数据?
> 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

相关内容