設定日期和時間我試圖通過設置bash腳本 假的日期我使用下面的命令:通過Linux的bash腳本
#!/bin/bash
echo 'myPass' | sudo -s 'date -s "1 NOV 2011 09:00:00"'
但我發現了命令錯誤。 什麼是正確的做法?
設定日期和時間我試圖通過設置bash腳本 假的日期我使用下面的命令:通過Linux的bash腳本
#!/bin/bash
echo 'myPass' | sudo -s 'date -s "1 NOV 2011 09:00:00"'
但我發現了命令錯誤。 什麼是正確的做法?
對於sudo,沒有短劃線的第一個參數是要執行的命令,下列參數是要給該命令的參數。如果將命令及其參數用引號括起來(例如"echo foo"
),則sudo會嘗試使用參數「foo」執行命令「echo foo」而不是命令「echo」。因此,你需要省略最外層的引號:
sudo date -s "1 NOV 2011 09:00:00"
'sudo'的'-s'選項啓動一個shell,並將command參數傳遞給shell執行。 – chepner 2014-09-11 12:12:28
sudo
默認情況下不從標準輸入讀取密碼,但是從終端本身,所以你不能管你的密碼進入sudo
這種方式。您需要使用-S
選項從標準輸入讀取。
echo "myPass" | sudo -S date -s "1 NOV 2011 09:00:00"
(請注意,您不需要使用-s
(小寫)選項; sudo
可以在沒有開始介入殼直接運行date
)。
然而,像這樣暴露您的密碼是安全風險。最好將sudo
配置爲允許您(或任何打算運行此腳本的人)在沒有密碼的情況下運行 此特定的date
命令。
什麼是錯誤信息? – 2014-09-11 10:24:20