
答案1
由於某種原因僅運行第一個命令
這是因為您有以下情況:
konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/; cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/; chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; [...]
Bash 將用分號(而不是換行符)分隔命令,因此正在運行的內容更像是下面的內容(每行顯示一個命令):
konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/
cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/
chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
[...]
你也很幸運konsole
「將捕獲傳遞給 Konsole 的所有以下參數” [參考] - 大多數命令不會執行此操作,而是將 , ,作為sudo
的參數作為其他命令列參數-e
來處理。cp
-f
/home/austin/...
cp
sysfs
即使它有效,也不太適合與 write to ... 一起使用。您更有可能透過重定向或tee
.
例如,如果您的scaling_governor
文件包含文本performance
,那麼您可以執行以下操作:
echo "performance" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
那就不需要後續的chown
or 了chmod
。這就是三個指令減為一個。
policy0
您只需為、policy1
和policy2
中的每一個執行一次該操作policy3
。怎麼樣:
sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<<"performance"
這是四次重複,直到一次調用tee
- 它甚至會自動調整以適應不同的系統(我的系統有 8 個策略,而不是 4 個)。
再次重複此操作以energy_performance_preference
取得您想要使用的值。
至於讓它出現在konsole
…你需要它嗎?你不能把它當作 bash 腳本運行嗎?
也許如果您確實願意,您可以使用以下命令/快捷方式來啟動腳本:
konsole -e "${PATH_TO_SCRIPT}"