Батарея моего компьютера плохая, но я не хочу тратить деньги на ее замену, потому что она все еще длится несколько часов. Но когда он падает примерно до 10%, иногда он просто выключает компьютер без предупреждения. Когда это происходит, внутренние часы сбрасываются на 31 декабря 2000 года. Я не думаю, что часы питаются от батарейки для часов, как в ПК, иначе я бы просто изменил это.

В любом случае, после загрузки ОС я получаю предупреждение о том, что дата установлена до 2008 года и что некоторые приложения могут не работать должным образом, в том числе и мой WiFi. Затем мне нужно выполнить несколько шагов, чтобы изменить время, сохранить его, выйти и снова войти в систему. Это просто небольшая боль в заднице, но я хотел бы, чтобы скрипт, похожий на файл autoexec.bat ПК, сделал работу за меня.

Во время загрузки я бы хотел, чтобы скрипт проверял время. Если это до 2008 года, тогда установите дату после 2008 года. Если дата указана после 1 января 2008 года, мой WiFi будет работать, и система автоматически исправит время через несколько минут.

Я использую OSX 10.6.8 на Mac с процессором Intel.

Заранее спасибо за помощь, Пит

1 ответ1

0

планирование

Чтобы выполнить команду по расписанию, лучше всего использовать crontab

Cron - это временный планировщик заданий в Unix-подобных компьютерных операционных системах. Название cron происходит от слова "хронос", по-гречески "время". Cron позволяет пользователям планировать выполнение заданий (команд или сценариев оболочки) периодически в определенное время или даты.

Таким образом, вы можете настроить скрипты и / или программы и т.д. Для выполнения по расписанию с этим. Для ваших целей наиболее подходящим таймером является @reboot который будет запускаться при каждой перезагрузке. Фактический синтаксис для этого будет следующим:

@reboot /path/to/my/script

Так как в некоторых unixy системах управление датами выполняется с правами root - вам может понадобиться отредактировать crontab из корневого терминала - сделайте это (вам нужно иметь права admin/sudo):

  1. Откройте Терминал
  2. введите sudo -i или su -
  3. Введите crontab -e (откроет crontab в вашем текстовом редакторе среды)
  4. Поместите вышесказанное в отдельной строке (@reboot /path/to/my/script)
  5. Выход и сохранение (фактические команды зависят от того, какой редактор вы используете)
  6. Убедитесь, что скрипт помечен как исполняемый (chmod +x /path/to/my/script)

Актуальный сценарий

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

Вы можете использовать команду date с параметрами для получения текущего системного времени - вы можете сделать это с date '+%Y'

Итак, сравнение на основе года:

#!/usr/bin/env bash

sysYr=$(date '+%Y')
cutoff=2008

if [[ $sysYr -lt $cutoff ]]; then
    echo "It's before ${cutoff}!"
else
   echo "It's ${cutoff} or greater!"
fi

Разбивка вышесказанного:

  1. Это просто говорит системе, где искать программу, которая запускает скрипт, это более переносимо, чем /usr/bin/bash как обычно. Я считаю, что это также работает на Mac. Если нет, то введите which bash и вместо этого вы можете указать на него.
  2. $( something ) - это подстановка команды, которая заменяет команду на результат команды. В этом случае мы запускаем date '+%Y' которая будет расширена (в настоящее время) до целого числа 2013
  3. Установка другой переменной для отсечки, просто для хорошего кода .
  4. Сравни и делай условные команды. Как правило, лучше всего сравнивать сравниваемые элементы для защиты от пробелов и тому подобного; Однако эти цифры , и нет никаких причин , они не должны быть, также -lt является сравнение Баш на числительное "меньше".
  5. Все остальное не требует пояснений - echo отображает следующий текст.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .