LINUX.ORG.RU
ФорумTalks

Мож кому пригодится


0

0

Наваял скрипт-будильник простенький: ставлю xmms на паузу, запускаю скрипт, указываю время, ложусь спать - в заданное время xmms снимается с паузы. Гораздо приятнее вставать под музыку типа Enigma -- Sadness или там Armik :)

Вот, может пригодится кому:

#!/bin/bash

read -p 'Когда ты хочешь проснуться? [чч:мм] '

HOURS=`echo $REPLY | awk -F: '{print $1}'`
MINUTES=`echo $REPLY | awk -F: '{print $2}'`

HOURS_NOW=`date +%H`
MINUTES_NOW=`date +%M`

if [ $(($HOURS)) -gt $(($HOURS_NOW)) ]; then 
        H_DIFF=`expr $HOURS - $HOURS_NOW`
else
        H_DIFF=`expr 24 + $HOURS - $HOURS_NOW`
fi

M_DIFF=`expr $MINUTES - $MINUTES_NOW`

TOTAL_DIFF=$(($H_DIFF * 60 + $M_DIFF))

H=$(($TOTAL_DIFF / 60))
M=$((TOTAL_DIFF - $H*60))

echo ОК, я разбужу тебя через $H:$M

if [ x`ps -Ao %c | grep xmms` = "x" ]; then 
        echo 'но только если ты запустишь xmms ;)'
fi

COMMAND="sleep $(( H*3600 + M*60 ))"
echo "$COMMAND; xmms -n0 -t"
$COMMAND; xmms -n0 -t
anonymous

Товарищь анонимус, зачем изобретать велосипед, когда его лет 30 назад изобрели. Зовется велосипед "at". Для удобства можно поверх него скриптик наваять. xmms, кстати тоже очень не плохо из at стартуется: DISPLAY=:0.0 xmms <options>

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

а на хрена вообще xmms держать для этого(что подразумевает иксы запущенные),когда можно и mpg123 ,например,обойтись....продливая жисть монитору,отключив Х-ы))

anonymous
()
Ответ на: комментарий от grustnoe

>#!/bin/bash - это моветон :)

это почему?

>продливая жисть монитору,отключив Х-ы))

можно просто монитор выключить и никакие Хы ему не страшны :)

>Товарищь анонимус, зачем изобретать велосипед

я правда другой анонимус, тем не менее отвечу - например для тренировки написания скриптов

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

>> #!/bin/bash - это моветон :)

> это почему?

Потому что культурно -- #!/bin/sh.

Потому что в /bin оно лежит в основном в линуксе. Во фре или Опёнке bash _обычно_ находится в /usr/local/bin.

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

За "at" спасибо, посидел полчаса, разобрался вроде немного. Я просто не знал об этой команде :) Поэтому и скрипт написал :)

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

> я правда другой анонимус, тем не менее отвечу - например для тренировки написания скриптов

Ну для тренировки оно конечно хорошо. Но других (тех кто не знает/не знал про at) не желательно вводить в заблуждение окончательное, что такого чуда (at) нет. (Кто-то может подумать, что раз чел пишит скрипты - то все знает, и все умеет, и типа значит скрипт - единственный способ так вот запустить в нужное время ;-)

quarck
()
Ответ на: комментарий от watashiwa_daredeska

> А какие причины не ставить zsh в /bin?

Не годится для скриптов. Не полностью совместима со стандартом.

> tclsh?

Было бы неплохо, но лучше scsh.

Все твои приколы неуместны ибо только баш является полностью совместимой со стандартом, имеющей множество полезных расширений, портированной на множество платформ оболочкой. И в любой системе она должна находиться в /bin.

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

> только баш является полностью совместимой со стандартом,

#!/bin/bash со стандартом несовместимо. Совместимо - #!/bin/sh. Кроме того, совместимость с неким стандартом - вещь преходящая, сегодня есть, завтра нет или наоборот.

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

> Не годится для скриптов. Не полностью совместима со стандартом.

это с каким-таким стандартом она не совместима?

> И в любой системе она должна находиться в /bin.

ага. вот только почему-то, в _любой_, отличной от линуха системе весь GNU-тый зоопарк норовят в /usr/local хапихнуть. к чему-бы это?

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

> это с каким-таким стандартом она не совместима?

С POSIX.

> ага. вот только почему-то, в _любой_, отличной от линуха системе весь GNU-тый зоопарк норовят в /usr/local хапихнуть. к чему-бы это?

Вот и я спрашиваю о том же. Ответ - из религиозных соображений. Ибо гнутые утилиты по всем показателям забивают "родной" зоопарк. Вот и приходится прибегать к таким нечестным приемам, чтоб хоть как-то приподнять свои кустарные поделия.

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

> #!/bin/bash со стандартом несовместимо. Совместимо - #!/bin/sh. Кроме того, совместимость с неким стандартом - вещь преходящая, сегодня есть, завтра нет или наоборот.

Во-во. Вчера стандартом было #!/bin/sh, а сегодня - #!/bin/bash.

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

> С POSIX.

очень даже совместима. если не приравнивать bash к POSIX и вызывать zsh как sh.

> Ответ - из религиозных соображений.

и частенько это довольно сильно раздражает :(

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

у меня вообще по crontab будильник. mpg123 wake_up.mp3. Скрипт wake 7 20 просто добавляет к crontab.def строчку, копирует получившийся файл в crontab. В 7 20 я просыпаюсь =(

WerNA ★★★★★
()

xmms-alarm - не судьба????

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