> cat b.txt
function first
{
foo=$(SOMEMAGIC)
}
echo nyi | first
>
質問: 関数内の「foo」変数に「nyi」文字列を渡すにはどうすればよいでしょうか。では、パイプライン経由で関数に渡されたデータを関数内の変数に渡すにはどうすればよいでしょうか。
答え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