11

我正在尝试暂停或“休眠”在 OSX 中运行的 bash 脚本中的特定行。该脚本在登录前启动时运行。我没有看到我期望的结果。换句话说,无论我在“睡眠”之后指定什么时间,脚本仍然会正确移动,不会有任何延迟。但是,当我在登录后运行脚本时,“睡眠”命令似乎工作得很好。

在登录之前或我的脚本运行之前,命令文件“sleep”是否可能不在路径中?如果我在命令之前放置睡眠路径会有帮助吗?如果是这样,“睡眠”生活在哪里?

我可以尝试另一种方法或替代命令吗?

谢谢

#!/bin/bash

#Create the bin directory
sudo mkdir /usr/local/bin

sleep 10

#Copy the files to the Hard Drive
sudo cp /Volumes/NO\ NAME/adbind.bash /usr/local/bin/adbind.bash
sudo cp /Volumes/NO\ NAME/com.sjusd.adbind.plist /Library/LaunchDaemons/com.sjusd.adbind.plist

#Fix permissions
sudo chown root:wheel /usr/local/bin
sudo chmod 755 /usr/local/bin
sudo chown root:wheel /Library/LaunchDaemons/com.sjusd.adbind.plist
sudo chmod 755 /Library/LaunchDaemons/com.sjusd.adbind.plist

exit 0

该死的人群,我得到了一个负 1 LOL

4

2 回答 2

34

这可能有点晚了,但似乎 OS X 上的 sleep 不适用于量词(m,h,...)。苹果官方文档

所以“sleep 5m”和“sleep 5”是一样的。如果你想要5分钟,你必须使用“sleep 300”

于 2017-05-14T19:17:23.883 回答
4

如果你运行which sleep,你可以获得系统上“睡眠”的路径。我明白了/bin/sleep

此时,您有几个选择:

您可以sleep在调用它时指定路径

#!/bin/bash
# script before sleep ...
/bin/sleep
# ... after sleep

或者您可以$PATH在调用之前在脚本中添加变量的路径。

#!/bin/bash
PATH="$PATH:/bin"
# script before sleep ...
sleep
# ... after sleep
于 2012-10-09T15:45:54.527 回答