我想在開機後自動執行下面這段command
#!/bin/sh.sh
# Go to ApplePS2 kexts directory
cd /System/Library/Extensions/ApplePS2Controller.kext/Contents/PlugIns
# Unload trackpad and keyboard kext
sudo kextunload ApplePS2Keyboard.kext
sudo kextunload ApplePS2Trackpad.kext
# Load them again
sudo kextload ApplePS2Keyboard.kext
sudo kextload ApplePS2Trackpad.kext
exit 0
請問我該如何編寫以及執行,包括執行sudo時要如何自動輸入密碼
感謝回答
samling wrote:
感謝兩位鼎力相助不過...(恕刪)
你有兩種方式可以達成你的工作:
1.用AppleScript 插入 shell script,然後如上朋友所述
2.你如果會寫shell 怎麼不會讓它可執行呢?
將它成為可執行:
#chmod 755 script_name
或是任何人都可執行:
#chmod 777 script_name
但是你的這個case, 如果執行的指令要用到sudo ,哪你可能無法在登入後執行,
你必須在登入前,在開機時期 ,就必須執行,那個時期是 root 在掌控.
你可以參考我的:重複定時執行cron
修改你的/etc/crontab,其中路徑及檔名你決定,@reboot 是開機時會執行,而且是用root
將下面這行加入 /etc/cron 檔案
@reboot root /Users/user_name/script_name
另外Donald Chang 朋友的方法也行,不過owner是root的檔案放在自己的目錄下,似乎怪怪的,你要改自家目錄的權限?還是放在/etc 下?你要規劃一下!
if [ -f /etc/rc.local ]; then
sh /etc/rc.local
fi
也就是說如果/etc/rc.local是一個檔案而且存在的話就會去執行,你可以開一個Terminal然後vi /etc/rc.local,內容如下
#!/bin/sh
# Go to ApplePS2 kexts directory
cd /System/Library/Extensions/ApplePS2Controller.kext/Contents/PlugIns
# Unload trackpad and keyboard kext
./kextunload ApplePS2Keyboard.kext
./kextunload ApplePS2Trackpad.kext
# Load them again
./kextload ApplePS2Keyboard.kext
./kextload ApplePS2Trackpad.kext
然後chmod 755 /etc/rc.local,然後重開電腦,看看這樣行不行,祝你好運!!
PS.以上未經過測試