如何在標準輸入上儲存提供給函數的資料?

如何在標準輸入上儲存提供給函數的資料?
> 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

相關內容