【问题标题】:How can I make my bash script wait 30 minutes to run? [duplicate]如何让我的 bash 脚本等待 30 分钟才能运行? [复制]
【发布时间】:2019-08-09 21:03:54
【问题描述】:

我有一个 bash 脚本来锁定我的计算机。我想将其设置为从现在起 30 分钟内锁定。

这是我的 Mac 电脑锁定屏幕的 bash 脚本

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

我可以用这段代码执行它

sh ~/Documents/Misc/lock_computer

【问题讨论】:

标签: bash


【解决方案1】:

您可以使用sleep 30m 命令。

更多详情:https://www.cyberciti.biz/faq/linux-unix-sleep-bash-scripting/

【讨论】:

  • 我选择了这个。这比使用at 命令更容易
  • @Cauder:你应该接受这个答案而不是我的。
【解决方案2】:
echo 'sh ~/Documents/Misc/lock_computer' | at 'now + 30 minutes'

【讨论】:

  • 我想将它包含在脚本中。当我使用我的命令在行上方添加at now + 1 minutes 然后使用相同的 sh 命令时,它可以工作。这在 bash 中合法吗?
  • 我不明白你在问什么。正如我在答案中所示,命令字符串需要通过管道传输到 at 命令中。将at 命令单独放在命令上方的一行不会做任何事情。听起来您可能需要按照另一个答案中的建议将 sleep 命令添加到您的脚本中。
  • 我的语法错了吗?我使用 sh 命令,这会在 25 秒内触发屏幕锁定。 sleep 25m && /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
  • @Cauder:我不是提供sleep 答案的人,但这应该可以。您可以查看man sleep 以了解支持哪些选项。看来您可能使用的是 Mac,并且不支持诸如 m 之类的后缀。这意味着您将使用sleep 1500,即 25 分钟内的秒数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
相关资源
最近更新 更多