по какой-то причине выполняется только первая команда
Это потому, что у вас есть следующее:
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 " [ ref ] - большинство команд этого не сделают, вместо этого они принимают 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}"