【シェルスクリプト】引数でも標準入力でも値を受け取れるように書く方法
2021/07/18
./script.sh abc
と echo abc | ./script.sh
の両方で動作させたい
引数ではもちろん、パイプで繋げて処理できたらいいなと思ったので調べた
実装
cat -
で標準入力が受け取れる
#!/bin/bash
if [ -p /dev/stdin ]; then
input=`cat -`
else
input=`echo $@`
fi
echo Hello, ${input}
実行
# 引数
$ ./hello.sh World
Hello, World
# 標準入力
$ echo World | ./hello.sh
Hello, World