在 MacOS 上将 at 和批处理实用程序与 zsh 结合使用

在 MacOS 上将 at 和批处理实用程序与 zsh 结合使用

我正在尝试与公用事业公司安排一项一次性工作at。我正在尝试: at 13:00,然后按 Enter 键,然后 <name_of_shell_script>,然后ctrl+d

我的脚本的第一行是:#!/bin/zsh

但它永远不会被执行。它在手动运行时执行,但在使用 at 实用程序计划时不执行。

答案1

通过cron、 或at、 或运行的作业batch不会在桌面上的同一运行时环境中运行。您的任何PATH更改或其他环境变量设置都不会自动传播到您的cron作业。例如,没有$DISPLAY,因此 GUI 程序需要特殊处理(读取man xhost)。

可以在Read 文件cron中为所有作业设置环境变量。crontabman 5 crontab

echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias查看每个环境中的结果 。

由于默认情况下,command该行的部分由 解释,它的语法比 更简单,因此我建议调用一个脚本(可执行文件,已安装,以 开头)来设置环境,然后调用所需的程序。crontab/bin/sh/bin/bashcommandbash#!/bin/bash

相关内容