目覚まし シェルスクリプト Timeout puppy

一定時間後にモニタをオフ。指定時間にプログラムを実行。



#!/bin/bash

function SetWakeDayAfter() {
  para1=""
  echo "----------------------------"
  echo "wake日時を選択してください。。"
  echo "0=today,1=+1day,2=+2day"
  read input
  
  if [ $input = 0 ] ; then
      para="today"
  elif [ $input = 1 ] ; then
       para="+1 days"
#    echo "  スクリプトを実行します."
#    return $input
  elif [ $input = 2 ] ; then
       para="+2 days"
#    echo "  スクリプトを終了します."
#    exit 1
  else
    echo "有効値を入力してください"
    SetWakeTime
  fi
#  echo $para
  return $input

}

function ConfirmExecution() {

  echo "----------------------------"
  echo "一定時間経過後電源を切ります。"
  echo "何分後に電源を切りますか?"
  read input

  if [ -z $input ] ; then

    echo "数値を入力してください(255まで)。no=終了します"
    ConfirmExecution

  #elif [ $input = 'yes' ] || [ $input = 'YES' ] || [ $input = 'y' ] ; then
  elif [[ "$input" =~ ^[0-9]+$ ]] ; then
    echo "  スクリプトを実行します."
    return $input
  elif [ $input = 'no' ] || [ $input = 'NO' ] || [ $input = 'n' ] ; then
    echo "  スクリプトを終了します."
    exit 1
  else
    echo "数値を入力してください。"
    ConfirmExecution
  fi

}

keizoku=999
while [ $keizoku -gt 0 ]
do
  #keizoku=$keizoku -1
  keizoku=$(($keizoku - 1))
  echo "keizoku="$keizoku

	SetWakeDayAfter
	KeikaNichiji=$?

	echo "----------------------------"
	echo $KeikaNichiji"日後に復帰します"
	#date +%Y-%m-%d" 04:30:00" --date '+1 days'
	#date +%Y-%m-%d" 04:30:00" --date "+"$KeikaNichiji" days"
	WakeTime=$(date +%Y-%m-%d" 04:00:00" --date "+"$KeikaNichiji" days")
	echo $WakeTime
	#$(date +%s -d "2021-09-30 04:30:00")
	#date +%s -d "2021-10-01 04:30:00"
	#echo "2021-10-03"
	#date +%s -d "2021-10-03 04:30:00"
	#date +%s -d "2021-10-03 04:30:00"
	#date +%s -d $"2021-10-03 04:30:00"
	WakeTimeSecond=$(date +%s -d """$WakeTime""")
	echo $WakeTimeSecond


	#firefox "https://www.youtube.com/watch?v=ncfViXHwlcE" &


	# シェルスクリプトの実行を継続するか確認します。
	ConfirmExecution
	Remain=$?

	echo "----------------------------"
	echo $Remain"分後に電源を切ります"


	start=1
	#end=120
	#echo "please wait $end seconds"
	  while [[ $start -le $Remain ]]; do
		echo $(($Remain-$start))
	#	xdotool mousemove 300 $start
		sleep 1m
	#    sleep 5s
	#	xdotool mousemove $start 300
	 #   sleep 5s
		start=$(($start+1))
	  done


	#sleep 120m
	echo "電源を切ります。"
	sleep 1m
	#poweroff
	pgrep firefox | xargs kill -9
	sleep 1m
	$WakeTimeSecond
	#sudo /usr/sbin/rtcwake -m mem -t $(date +%s -d "2021-09-30 04:30:00")
	sudo /usr/sbin/rtcwake -m mem -t $WakeTimeSecond
	#date +%Y-%m-%d" 04:30:00" --date "+"$KeikaNichiji" days"
	#sudo /usr/sbin/rtcwake -m mem -t $(date +%s -d "2021-09-30 04:30:00")

	sleep 1m
	firefox "https://www.youtube.com/watch?v=P1fYUdJJ-20" &
	#sleep 1m

	start=1
	Remain=60
	#end=120
	#echo "please wait $end seconds"
	  while [[ $start -le $Remain ]]; do
		echo $(($Remain-$start))
		xdotool mousemove 300 $start
	 #   sleep 1m
		sleep 30s
		echo "画面キープ中、Remain="$Remain
		xdotool mousemove $start 300
		sleep 30s
		start=$(($start+1))
	  done

done



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です