Como armazenar os dados dados a uma função na entrada padrão?

0
> cat b.txt 
function first
    {
    foo=$(SOMEMAGIC)
    }

echo nyi | first 
> 

Pergunta : Como podemos atribuir a string "nyi" à variável "foo" dentro da função? Então, como podemos dar os dados que foram dados à função via pipeline para uma variável dentro da função?

    
por pepite 15.04.2017 / 11:46

2 respostas

5

Você pode fazer um desses

Leia uma linha de entrada padrão

function first
{
    IFS="" read -r foo
}

echo nyi | first

ou

Leia o primeiro argumento

function first
{
    foo="$1"
}

first nyi
    
por 15.04.2017 / 11:51
0

Você também pode usar cat para consumir a entrada e depois retorná-la à atribuição.

$ first () { foo=$(cat); echo b${foo}c; }
$ echo nyi | first
bnyic
    
por 21.01.2018 / 23:42