2012-10-09 141 views
2

我試圖暫停或「睡眠」在OSX中運行的bash腳本中的特定行。該腳本在登錄之前在啓動時運行。我沒有看到我期待的結果。換句話說,無論我在「睡眠」之後指定的時間如何,腳本仍然會毫不拖延地繼續前進。但是,當我登錄後運行腳本時,「睡眠」命令似乎工作得很好。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

+1

你期待什麼結果?你能展示劇本嗎?任何輸出? 「睡眠」是順便說一句。通常位於'/ bin/sleep'中。 – tamasgal

+0

'echo $(which sleep)'在腳本開始處,用於測試您的問題。 – Zulu

+0

確認它位於/ bin目錄中的祖魯語。謝謝。它只是在登錄之前不工作。 – Chuck

回答

1

如果運行which sleep,你可以讓你的系統上的路徑爲「休眠」。我得到/bin/sleep

在這一點上,你有兩個選擇:

,當你把它

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

,或者你可以在你的腳本中的路徑添加到您的$PATH變量,你可以指定sleep路徑在你打電話之前。

#!/bin/bash 
PATH="$PATH:/bin" 
# script before sleep ... 
sleep 
# ... after sleep 
+0

這似乎沒有幫助。當我看着/ bin時,我沒有看到睡眠。但是它必須在某個地方,如果它在我登錄時有效。OSX版本是10.8.2 – Chuck

+0

我添加了echo $(睡眠),它確實顯示它在/ bin目錄中。我添加了PATH,並在命令之前添加了/ bin/sleep。我只是不明白。 UGH – Chuck

+0

當您從命令行運行'which sleep'時會發生什麼?有可能(不太可能)''/ bin/sleep'被破壞,但是當交互式啓動時''PATH''早些時候有一個工作的'sleep'。 –

4

這可能有點晚,但似乎睡眠OS X不適用於量詞(m,h,...)。 Official Apple documentation

所以「睡眠5米」與「睡眠5」相同。如果你想要5分鐘,你必須使用「睡眠300」

+0

「有點晚」是輕描淡寫。但它可能是正確的答案,所以有一個upvote。 – rici

+0

這不回答這個問題。 –