Создайте скрипт для автоматического редактирования файла и запуска команды

Создайте скрипт для автоматического редактирования файла и запуска команды

Я искал информацию на форумах, но, будучи новичком, не смог найти ничего, что было бы мне понятно.

Я пытаюсь создать скрипт, который редактирует 3 определенные строки в тексте, сохраняет их и запускает команду перезапуска для службы. Это делается для управления вентилятором. Я пока не нашел GUI, поэтому я вручную редактирую скорости, так как сейчас лето, и днем ​​мне нужны более высокие скорости вентилятора.

Прежде чем кто-то скажет, что нужно сделать его зависящим от температуры, я хочу, чтобы температура оставалась ниже определенного градуса, а ночью можно было бы снизить скорость вращения вентилятора, так что это практически невозможно.

sudo nano /etc/fancontrol
sudo service fancontrol restart 

команды, которые я запускаю ежедневно, но мне надоело постоянно их редактировать. Допустим, я мог бы использовать 2 скрипта (один с более высокой, а другой с более низкой скоростью вращения вентилятора) и запускать их вручную или автоматически в определенный час.

# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10                                                                                                                                                             
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/it87.2608                                                                                            
DEVNAME=hwmon1=coretemp hwmon2=it8728                                                                                                                                   
FCTEMPS=hwmon2/pwm2=hwmon2/temp2_input hwmon2/pwm3=hwmon1/temp4_input                                                                                                   
FCFANS=hwmon2/pwm2=hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan1_input                                                                                                      
MINTEMP=hwmon2/pwm2=10 hwmon2/pwm3=25                                                                                                                                   
MAXTEMP=hwmon2/pwm2=80 hwmon2/pwm3=55                                                                                                                                   
MINSTART=hwmon2/pwm2=**220** hwmon2/pwm3=210                                                                                                                                
MINSTOP=hwmon2/pwm2=**200** hwmon2/pwm3=200                                                                                                                                 
MAXPWM=hwmon2/pwm2=**220** hwmon2/pwm3=255 

Мне нужно изменить выделенные жирным шрифтом значения.

Спасибо заранее, ребята!!!

решение1

Вы можете использовать sedкоманду для редактирования файла с помощью команды. Например,

sed -i 's/MINSTART=hwmon2\/pwm2=220/MINSTART=hwmon2\/pwm2=400/' /etc/fancontrol

изменит значение 220на 400.

sозначает «поиск». После разделителя /, который разделяет команду на части, следует строка для поиска, до следующего (не экранированного) /. \/Это экранированный /, что означает: «интерпретировать следующий /как буквальный символ, принадлежащий строке поиска, а не как разделитель для различных частей команды». Затем следует строка, на которую вы заменяете, заканчивающаяся /. После завершающего /, вы можете добавлять параметры. Важным является g, который означает, что любое вхождение должно быть заменено. По умолчанию заменяется только первое найденное вхождение.

Конкретизация строки поиска снижает вероятность того, что она также будет соответствовать чему-то другому в файле.

Связанный контент