私大文系卒だめだめエンジニア奮闘記

日々の業務で躓いた箇所を備忘録してブログを活用

"パンプアップ"コマンド自作

作るコマンド: pumup
概要 : 筋トレの種類と回数をセットすると、一定間隔で警告音を出力し、筋トレのサポートするコマンド

vi pumpup


#!/bin/bash

function count() {
      local counts=$1;
      local training=$2;
      local sec=$3;
      for ((i = 1; i <= ${counts}; i++ )){
        echo "${training} ${i} 回"
        echo -en '\a'
        sleep ${sec}
      }
}

while getopts b:s:d: OPTION
do
  case $OPTION in
    b) count $OPTARG "ベンチプレス" 2 ;;
    s) count $OPTARG "スクワット" 3 ;;
    d) count $OPTARG "デッドリフト" 1 ;;
    *)
      echo "Usage: $COMMAND  [-b | -s |-d ] number " 1>&2
      exit 1 ;;
  esac
done

echo "お疲れマッチョ"
exit
-------------

いざ実行してみると

./pumpup -b 2 -s 3
ベンチプレス 1 回     // ここでビープ音が鳴っている
ベンチプレス 2 回     // 5秒後に、表示される。
スクワット 1 回
スクワット 2 回
スクワット 3 回

シェルスクリプトの関数化

count($OPTARG,"ベンチプレス",2)

のように括弧で括りません。


関数をコマンドのように扱うのがシェルスクリプトの思想のような気がします。

これで、みなさんもマッチョになれますね!!