OSX bash"睡觉"

Chu*_*uck 9 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
Run Code Online (Sandbox Code Playgroud)

笨拙的人群我得了1减1 LOL

小智 20

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

所以"睡5m"与"睡5"相同.如果你想要5分钟,你必须使用"睡眠300"


Bar*_*den 4

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

此时,您有几个选择:

sleep调用时可以指定路径

#!/bin/bash
# script before sleep ...
/bin/sleep
# ... after sleep
Run Code Online (Sandbox Code Playgroud)

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

#!/bin/bash
PATH="$PATH:/bin"
# script before sleep ...
sleep
# ... after sleep
Run Code Online (Sandbox Code Playgroud)