Bash シェルスクリプトで標準入力を受け取る
cat - で 標準入力を受け取り、利用できる。
#!/bin/sh if [ -p /dev/stdin ] ; then echo "stdin" cat - else echo "nothing stdin" fi
- 変数の格納する例
#!/bin/sh if [ -p /dev/stdin ] ; then a=$(cat -) echo "input string is ${a}" else echo "nothing stdin" fi
なお、標準入力の判定の際に、 -t で file descriptor で判定することもできるが、
こうすると、シェル化してバックグラウンドで実行したときに泣きを見ます。
# 残念な例 if [ ! -t 0 ] ; then cat - else echo "nothing stdin" fi