Shell-Script
關閉腳本未按書面方式工作
我是 Linux 新手。我寫了一個非常簡單的腳本來關閉我的電腦,寫成這樣:
!#/bin/bash echo "Hello World" sudo shutdown
當我執行此程式碼時,它會啟動一個關閉計劃,通常提前一分鐘左右,即使我的腳本沒有提供計劃,而是我想立即關閉我的系統。我想知道這是我的腳本還是 Linux 的功能,以及我可以做些什麼來修復我的腳本以使其立即關閉。
最好的辦法是在終端中輸入每個命令來測試命令的作用。就您而言,我認為您想使用以下內容:
shutdown now
您需要在腳本中解決三個問題。
第一個是shebang行中的錯字。這樣一行的正確語法是
#!
/path/to/interpreter -options and arguments。它必須從第一行的第一個字元開始,並以換行符結束。bash
是一個可接受的腳本外殼(儘管在這種情況下它可能有點矯枉過正),所以在修復前兩個字元之後它是可以接受的,但有幾個選項可能有用。-e
出現任何錯誤時退出,迫使您編寫更好的腳本並-x
顯示 shell 在每一步都在做什麼,儘管在這種情況下兩者都不會發現問題。關機最常見的兩個錯誤是關機時間和關機類型,您似乎都遇到了這兩個錯誤。Shutdown 的主要功能是一次關閉。有三種方法可以指定絕對時間、相對時間和
now
. 現在是+0
這意味著從現在開始零秒,並且通常是單使用者系統所需要的。Shutdown 的另一個主要功能是它支持多種類型的關機,例如停止、關機和重新啟動,但由於關機早於自動電源管理,因此預設設置為單使用者模式。曾經使用它,以便在您將所有使用者踢出之後,您可以在實際關閉系統電源之前同步、解除安裝和檢查文件系統。在切換回多使用者模式之前進行其他維護也很有用。這些天沒有太多使用,但仍然是預設設置。手冊頁將告訴您如何選擇關機類型。root 使用者也不需要 sudo,因此您可以為 root 使用者跳過它。