カテゴリー
【シェルスクリプトツール作成の基本】自作のシェルスクリプトでパイプを使えるようにする
※ 当ページには【広告/PR】を含む場合があります。
2022/08/09
自作パイプ処理の仕組み
cat -
1.sh
#!/bin/bash
if [ -p /dev/stdin ]; then
echo 'パイプ処理から標準入力!'
cat -
else
echo '普通の標準入力!'
echo "$@"
fi
$ chmod +x 1.sh
$ echo 'タコ' | ./1.sh
パイプ処理から標準入力!
タコ
$ ./1.sh 'タコ'
普通の標準入力!
タコ
#!/bin/bash
if [ -p /dev/stdin ]; then
_args=$(cat -)
else
_args=$@
fi
echo "引数は ${_args} です"
if [ -p /dev/stdin ] ...fi
自作スクリプトを作って検証
#!/bin/bash
if [ -p /dev/stdin ]; then
_str=$(cat -)
else
_str=$@
fi
echo "${_str}" | bc -l
$ chmod +x 2.sh
#パイプ処理OK
$ echo '1+2' | ./2.sh
3
#通常の処理もOK
$ ./2.sh '3*4'
12
複数の引数がある場合の処理
#!/bin/bash
if [ -p /dev/stdin ]; then
_arr=$(cat -)
else
_arr=$@
fi
sum=0
for i in ${_arr[@]}; do
sum=$((sum + i))
done
echo $sum
$ chmod +x 3.sh
#👇通常の引数(配列)
$ ./3.sh 4 7 2 6 -10
9
#👇パイプで与える引数(配列)
$ echo 1 7 3 | ./3.sh
11
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー