STDINか引数を処理するコマンドを作りたい。
たとえば、次のようなコマンドを作りたい。
標準入力があるときは、標準入力を使い、それ以外は引数を使う。
echo AAA | to_lower to_lower AAA
to_lower の例。
ヒアストリングに展開すれば楽ちんです。
<<< ${@:-$(</dev/stdin)}
#!/usr/bin/env bash tr "[:upper:]" "[:lower:]" <<< ${@:-$(</dev/stdin)}
{$@}
が引数で引数があるときは引数を使い、ないときは$(</dev/stdin)
で標準入力を探しに行く