> cat b.txt
function first
{
foo=$(SOMEMAGIC)
}
echo nyi | first
>
質問:関数内で文字列「nyi」を「foo」変数にどのように割り当てますか?では、関数にパイプで接続されたデータを関数内の変数に渡すにはどうすればよいですか?
答え1
次のいずれかを実行できます。
標準入力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