答案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
... 即使它有效。使用重定向或 更有可能成功tee
。
例如,如果您的scaling_governor
文件包含文本performance
,那么您可以执行以下操作:
echo "performance" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
那么就不需要后续的chown
或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}"