표준 입력에서 함수에 제공된 데이터를 어떻게 저장합니까?

표준 입력에서 함수에 제공된 데이터를 어떻게 저장합니까?
> cat b.txt 
function first
    {
    foo=$(SOMEMAGIC)
    }

echo nyi | first 
> 

질문: 함수 내부의 "foo" 변수에 "nyi" 문자열을 어떻게 제공할 수 있나요? 그렇다면 파이프라인을 통해 함수에 제공된 데이터를 함수 내부의 변수에 어떻게 제공할 수 있을까요?

답변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

관련 정보