LINUX.ORG.RU

[bash] Timing bomb


0

1
#!/bin/bash
while :; do
	time=`date | awk '{print $4}'`
	day=`date | awk '{print $3}'`
	month=`date | awk '{print $2}'`
	if [ $time == "12:23:00" ] && [ $day == 27 ] && [ $month == "May" ]; then
		mpg321 ~/Downloads/caralarm.mp3
		exit
	else 
		if [ $day > 27 ]; then
			echo "out of date"
			exit
		fi
	fi
done

Всегда заканчивается ссобщением «out of date» и создает в файл «27», где-то ошибка? После длительного программирования затупил. Ставлю время на одну минуту больше системного и «бомба» не срабатывает. Было нормально, а щас перестало работать. И попутно, как можно посмотреть логи, возможно таких нет, где указывается время и скрипт или процесс, которые были запущены?

А зачем на bash, когда есть прекрасная программа at, которая именно за это и отвечает?

AITap ★★★★★ ()

Всегда заканчивается ссобщением «out of date»

[ $time == "12:23:00" ]

а как ты хотел?

и создает в файл «27»

-[ $day > 27 ]
+[ $day '>' 27 ]

читать доку.

former_anonymous ★★★ ()

> at, cron
И че мне эти утилиты. Печатаю на баше, значит на баше. Главное не результат, а процесс... и ЧСВ.

PymOxim ()
Ответ на: комментарий от former_anonymous

> [ $day '>' 27 ]
Помогло. У меня с питоном все перемешалось в голове. В плане синтаксиса.

PymOxim ()

Ты бы слипы для приличия вставил, а то этот процесс будет проц пожирать

xorik ★★★★★ ()

недобыдлокод

while :; do
   time=`date | awk '{print $4}' | cut -d\: -f1,2`
   day=`date | awk '{print $3}'`
   month=`date | awk '{print $2}'`
   if [ $time == "12:47" ] && [ $day == 27 ] && [ "$month" == "Май" ]; then
      echo bla-bla-bla
      exit 0
   else 
      if [ $day '>' 27 ]; then
         echo "out of date"
         exit 0
      fi
   fi
sleep 1
done

megabaks ★★★★ ()
Ответ на: комментарий от PymOxim

И че мне эти утилиты

тогда man date
awk там не нужен

zolden ★★★★★ ()

Финальная версия.

#!/bin/bash
while :; do
	time=`date +"%H:%M"`
	day=`date +"%d"`
	month=`date +"%m"`
	if [ $time == "13:39" ] && [ $day == 27 ] && [ $month == "05" ]; then
		mpg321 ~/Downloads/caralarm.mp3
		exit 0
	else 
		if [ $day '>' 27 ] || [ $month != "05" ]; then
			echo "out of date"
			exit 0
		fi
	fi
sleep 1
done

PymOxim ()

man хоть-что-нибудь

Led ★★★☆☆ ()
Ответ на: комментарий от sdio

> Сравнение чисел в баше надо делать посредством -gt, -lt, ...
А я думал почему тоже самое еще и в буквенных символах есть :)

PymOxim ()
Ответ на: комментарий от sdio

Слушай, а не знаешь, можно как-то в терминале через prompt, чтобы динамически отображались часы? Статические-то я знаю как впилить, которые изменяются только после того, как обновить страницу. Не умеет?

PymOxim ()
Ответ на: комментарий от mky

> Не знаю как через prompt, в углу экрана есть такое способ:
Как-то костыльно. Даже поверх mc работает. Но все равно спасибо.

PymOxim ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.