Как я делаю математику даты в сценарии удара на Leopard OS X?

timeout теперь поддерживается на call() и communicate() в модуле подпроцесса (как на Python3.3):

import subprocess

subprocess.call("command", timeout=20, shell=True)

Это вызовет команду и поднять исключение

subprocess.TimeoutExpired

, если команда не завершится через 20 секунд.

Затем вы можете обработать исключение, чтобы продолжить свой код, например:

try:
    subprocess.call("command", timeout=20, shell=True)
except subprocess.TimeoutExpired:
    # insert code here

Надеюсь, это поможет.

20
задан Gregory Higley 4 February 2009 в 11:40
поделиться

3 ответа

$ date -v -1d

-d устанавливает флаг Летнего времени.

дата человека Попытки большего количества информации

31
ответ дан 29 November 2019 в 03:50
поделиться

Команда Matthew упоминает работы для меня с/bin/date на Leopard. Кроме того, как Schwern указывает, если Вы уверены, что Ваш сценарий оболочки будет работавшим Mac OS X, почему Вы не хотите использовать Python или Ruby, это оба приезжают в стандарт в/usr/bin? Это никоим образом не влияло бы на мобильность в Вашем конкретном сценарии.

1
ответ дан 29 November 2019 в 03:50
поделиться

я понимаю, что мог сделать на скорую руку немного C или программу Ruby, чтобы сделать это, но я хочу, чтобы мой сценарий имел как можно меньше зависимостей.

Выполнение в C или поскольку сценарий Ruby привел бы к меньшему количеству зависимостей и был бы более межплатформенным.. Сценарии Bash просто называют различные другие сценарии/приложения, главным образом утилиты GNU.. Многие команды недоступны, или берут различные аргументы на других платформах (особенно между OS X и Linux)..

Ruby включен по умолчанию на Leopard OS X (и 10.4, и вероятно предыдущие версии, если я вспомню правильно), и если Вы будете использовать Rubys встроенные библиотеки даты, то он будет последовательно работать над любой платформой.

Каждый раз, когда Вы пытаетесь сделать что-либо удаленно сложное, Вы являетесь обычно лучшими из использования "надлежащего" языка сценариев!

0
ответ дан 29 November 2019 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: