2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Macのターミナルでタイマー作成(繰り返し機能も)

Last updated at Posted at 2020-10-30

背景

Macでタイマー使おうと思ったら標準で無く、App Storeにある海外製の無料のを入れるのも..と思いシェルスクリプトで作成
ちなみに今回1回で終わりでなく、ループして一定の時間で繰り返し教えてほしかった

完成図

最低限でざっと作ってこんな感じ
ざっくり時間が分かれば十分で、指定時間が過ぎると標準サウンドのGlassを2回鳴らすようにしました
Screen Shot 2020-10-30 at 16.08.40.png

コマンドとコード

適当な場所にスクリプトを置いて、下記で実行(※9分ごとに音を鳴らす例)
オプションで「-l」をつけるとループで実行します(getoptsの仕様なのか、オプションを「9」の後につけるとダメでした)

sh min_timer.sh -l 9
min_timer.sh
# !bin/bash

## オプション(ループ指定)解析
loop='FALSE'
while getopts l OPT
do
  case $OPT in
    'l' ) loop='TRUE' ;;
  esac
done
shift  $(($OPTIND - 1))

## タイマー指定時間
minutes=$1

while :
do
  clear
  ## 開始時間と終了時間を表示
  echo "***** `date +%H:%M` -> `date -v+${minutes}M +%H:%M`\n"

  for i in `seq 1  ${minutes}`
  do
    ## 残り時間を表示(毎分)
    num=$(($minutes - $i + 1))
    echo "残り${num}分"
    sleep 60
  done

  ## アラーム(下記の場所に他の標準サウンドもありました)※-vオプションで音量調整できます
  afplay /System/Library/Sounds/Glass.aiff
  afplay /System/Library/Sounds/Glass.aiff

  ## ループor終了
  if [ "${loop}" = 'FALSE' ];then
    exit 0
  fi
done

最後に

今回ちょっと所用でざっと作りましたが、ひと手間加えたらポモドーロテクニックとかでも使えるかもと思いました(25分と5分で繰り返すようにするとか)
また、afplayは音楽ファイルを再生してるだけなので、いい感じのを用意したら気分が上がると思います:smiley:

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?