ども、ハゲです。
tl;dr
ループさせているスクリプトを ctrl + c を押して止めたことを捕捉したいと思って調べたメモ。
メモ
シェルスクリプト ver
#!/bin/sh trap 'echo "trapped."; exit 0' INT echo "停止したいは ctrl + c を押して下さい" while : do date sleep 5 done
以下、お試し。
$ ./trap.sh 停止したいは ctrl + c を押して下さい Sun Feb 14 23:24:11 JST 2016 Sun Feb 14 23:24:16 JST 2016 Sun Feb 14 23:24:21 JST 2016 ^Ctrapped.
Ruby ver
#!/usr/bin/env ruby Signal.trap(:INT) do puts "trapped." exit 0 end puts "停止したいは ctrl + c を押して下さい" loop do p Time.now sleep 5 end
以下、お試し。
$ ruby trap.rb 停止したいは ctrl + c を押して下さい 2016-02-14 23:25:23 +0900 2016-02-14 23:25:28 +0900 2016-02-14 23:25:33 +0900 ^Ctrapped.
Python ver(未完成)
#!/usr/bin/env python # -*- coding:utf-8 -*- import time print "停止したいは ctrl + c を押して下さい" try: while True: print time.ctime() time.sleep(5) except KeyboardInterrupt: print 'trapped.'
以下、お試し。
$ python trap.py 停止したいは ctrl + c を押して下さい Sun Feb 14 23:26:14 2016 Sun Feb 14 23:26:19 2016 Sun Feb 14 23:26:24 2016 ^Ctrapped.
以上
メモ。