高木のブログ

【シェルスクリプト】引数でも標準入力でも値を受け取れるように書く方法

2021/07/18

./script.sh abcecho 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

参考


ytkg

Written by ytkg, Twitter, GitHub