アウトプットができる技術者に

it's a time to take a new step !

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

Bash目次