创建脚本以自动编辑文件并运行命令

创建脚本以自动编辑文件并运行命令

我搜索过论坛,但作为新手找不到我能理解的东西。

我正在尝试创建一个脚本,编辑文本中的 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

将会把值更改220400

s/表示“搜索”。在将命令分成几部分的分隔符之后,紧接着要搜索的字符串,直到下一个(未转义) /\/是转义的/,意思是:“将下/一个解释为属于搜索字符串的文字字符,而不是命令不同部分的分隔符。然后是您要替换的字符串,以 结尾/。在终止 之后/,您可以添加选项。一个重要的是g,这意味着应该替换任何出现的情况。默认情况下,只替换找到的第一个出现的情况。

使搜索字符串具体化会降低它与文件中其他内容匹配的机会。

相关内容