Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
arg1=string.join(sys.argv[1:],'\\ ') # получаем переменную из соседнего файла bash
sys.argv[1]. Если оочень лень вводить кавычки и хочется, чтобы несколько аргументов сливались самим скриптом — делаем " ".join(sys.argv[1:]). Но основная проблема — экранировать нужно не только пробел. Банальные примеры: ; ! () < >. Так что часть аргументов все равно придется брать в кавычки. Это по поводу bash -> python.check_output(["zenity", "--entry", "--title=Напоминалка", "--text=Введите напоминание", "--entry-text=%s" % arg1, "--width=400"])[0-9][0-9][0-9][0-9] никто не пишет, надо \d{4}. (Только к строке-регэкспу добавить префикс r, чтобы слеш не утек).Для людей, которые работают в офисе с персональным компьютером — бухгалтеров, инженеров, секретарей
You can also give times like now + count time-units, where the time-units can be minutes, hours, days, or weeks and you can tell at to run the job today by suffixing the time with today and to run the job tomorrow by suffixing the time with tomorrow.
$ at now + 5 minutes
warning: commands will be executed using /bin/sh
at> /bin/ls
at> <EOT>
job 1 at Wed Oct 15 08:41:00 2014
$ at 11:15 tomorrow
warning: commands will be executed using /bin/sh
at> /bin/ls
at> <EOT>
job 2 at Thu Oct 16 11:15:00 2014
1. Открыть терминал (например, Ctrl+Alt+T)
2. Ввести строку: at 11:15 tomorrow
3. Нажать Enter
4. Ввести строку: zenity --display=:0 --warning --text='сделать\ отчет'
5. Нажать Ctlr+D
1. Открыть терминал (например, Ctrl+Alt+T)
2. Ввести строку: echo DISPLAY=:0 zenity --warning --text='сделать\ отчет' | at 11:15 tomorrow
3. Нажать Enter
1. Открыть напоминалку (например, Ctrl+Shift+X)
2. Ввести строку: завтра в 11-15 сделать отчет
3. Нажать Enter

shutdown -h now спасла мне немало драгоценных часов сна на последних курсах университета.
sh: 3: Syntax error: word unexpected (expecting "}")
if len(day) is not 0:if len(day):if day:is не проверяет объекты на равенство, он проверяет объекты на идентичность, то есть «указывают ли 2 ссылки на один и тот же объект». Соответственно это не работало бы на целых числах, если бы не оптимизация, примененная в конкретной реализации (CPython): небольшие целые числа являются синглтонами (вопрос на SO). Равенство можно проверять только с помощью ==, тогда как is аподходит для сравнения с синглтонами: None, True и False.a = 1
b = 1
a is b # -> True
a = 1000
b = 1000
a is b # -> False
if day:
com = commands.getstatusoutput('echo DISPLAY=:0 ~/remindme/task %s | %s' % (out,x)) на относительный путь. Достаточно разместить в другое место, как работать не будет.commands.getstatusoutput(cmd)
Execute the string cmd in a shell with os.popen() and return a 2-tuple (status, output). cmd is actually run as { cmd; } 2>&1, so that the returned output will contain output or error messages. A trailing newline is stripped from the output. The exit status for the command can be interpreted according to the rules for the C function wait().
Неожиданно приятно наткнулся на реализацию этой идеи под Linux, что моя программа XMinder была полезная и послужила таким вдохновением. Круто!
XMinder в целом вырос из спортивного интереса и пары часов свободного времени, когда я попробовал, смогу ли написать "компилятор" воспринимающий русский язык для парсинга "человеческого" формата дат. Оказалось, оно даже работоспособно и я немного развил, обвешал простыми хаками и некоторым усложнением грамматики. Так что, в отличие от идеи с regexp-ами, под капотом XMinder COCO/R грамматика https://ssw.jku.at/Research/Projects/Coco/#CS и немного хаков, чтобы можно было чуть более "человечный" текст парсить.
Простая напоминалка на Linux