我想创建一个bash脚本,该脚本将在某个时间执行一次性批量命令,但是,当我按照给出的说明进行操作时,我只是立即得到以下内容的打印件:
job 4 at Wed Jun 12 16:55:00 2019
我的问题类似于以下问题:How to run a script at a certain time on Linux?
但是,那里的用户评论了我遇到的相同问题,而这个问题没有得到回答,因此我想知道是否还有其他人对此有解决方案。从我的有限了解中,mac中的命令应该与linux相似(如果不相同),因此请让我知道是否缺少任何内容。
我的可执行文件如下:
#!/bin/bash
osascript -e "set Volume 0" | at 16:55
它没有在指定的时间更改音量,而是立即使计算机静音并打印出上面给出的文本。
答案 0 :(得分:0)
这将要求您具有Python 3并在文件顶部安装依赖项,但确实可以。
#!/usr/bin/env python3
import datetime as dt
import osascript
import sys
from threading import Timer
def do_the_biz():
osascript.osascript("set volume output volume 0")
print("Happy birthday.")
today = dt.datetime.now()
dateString = today.strftime('%d-%m-%Y') + " " + sys.argv[1]
newDate = today.strptime(dateString,'%d-%m-%Y %H:%M')
delay = (newDate - dt.datetime.now()).total_seconds()
Timer(delay,do_the_biz,()).start()
完成后:$ pip install osascript...
及其所有其他内容,请像这样使用:
$ ~/filename 16:55
以上假设它位于您的主文件夹中,但是只要您将路径放入其中,它就可以在任何位置。
答案 1 :(得分:0)
使用Heredoc避免回声
at 16:55 <<!
osascript -e "set Volume 0"
!
然后,确认您的工作安排在
at -l
列出所有作业。