如何使用脚本在 Intel Mac OSX 启动时设置时间

如何使用脚本在 Intel Mac OSX 启动时设置时间

我的电脑电池坏了,但我真的不想花钱更换它,因为它还能用几个小时。但当电量下降到 10% 左右时,它有时会毫无预警地完全关闭电脑。当这种情况发生时,内部时钟会重置为 2000 年 12 月 31 日。我不认为时钟是由像 PC 中的手表电池来维持的,否则我会更换它。

无论如何,一旦操作系统加载,我就会收到警告,日期设置为 2008 年之前,某些应用程序可能无法正常运行,我的 WiFi 就是其中之一。然后我需要执行几个步骤来更改时间、保存、注销并重新登录。这只是一个小小的麻烦,但我希望有一个类似于 PC 的 autoexec.bat 文件的脚本来帮我完成这项工作。

在启动时,我希望有一个脚本检查时间。如果时间早于 2008 年,则将其设置为 2008 年以后的日期。只要日期晚于 2008 年 1 月 1 日,我的 WiFi 就可以正常工作,系统会在几分钟内自动更正时间。

我在基于 Intel 的 Mac 上运行 OSX 10.6.8。

提前感谢你的帮助,Pete

答案1

调度

要按计划运行命令,最好的选择可能是使用crontab

Cron 是类 Unix 计算机操作系统中基于时间的作业调度程序。cron 的名称来自希腊语单词“chronos”,意为“时间”。Cron 允许用户安排作业(命令或 shell 脚本)在特定时间或日期定期运行。

因此,您可以使用它设置脚本和/或程序等,以便按计划执行。对于您的用途,最适用的计时器@reboot在每次重启时运行。其实际语法如下:

@reboot /path/to/my/script

因为在某些 unixy 系统上,日期控制内容是 root - 您可能需要crontab从 root 终端进行编辑 - 因此请执行以下操作(您需要具有管理员/sudo 权限):

  1. 打开终端
  2. 输入sudo -isu -
  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. 比较并执行条件命令。通常,最好将要比较的项目括起来,以防止出现空格等情况;但是,这些是数字,没有理由不这样,-ltbash 比较数字“小于”也是如此。
  5. 其余部分相当不言自明 -echo显示以下文本。

相关内容