OSX bash“睡觉”

时间:2012-10-09 15:39:12

标签: macos bash shell

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

命令文件“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减1 LOL

2 个答案:

答案 0 :(得分:13)

这可能有点晚了,但似乎OS X上的睡眠不适用于量词(m,h,...)。 Official Apple documentation

所以“睡眠5米”与“睡眠5”相同。如果你想要5分钟,你必须使用“睡眠300”

答案 1 :(得分:2)

如果您运行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