ファイルを自動的に編集し、コマンドを実行するスクリプトを作成する

ファイルを自動的に編集し、コマンドを実行するスクリプトを作成する

フォーラムを検索しましたが、初心者なので理解できるものが見つかりません。

テキストの特定の 3 行を編集し、それを保存して、サービスの再起動コマンドを実行するスクリプトを作成しようとしています。これはファン制御のために行われます。まだ GUI が見つかっていないため、夏なので日中はファンの速度を上げる必要があるため、手動で速度を編集しています。

誰かが温度ベースにしろと言う前に、私は温度が一定度以下になるようにしたいし、夜間はファンの速度を下げても大丈夫なので、それは不可能なことです。

sudo nano /etc/fancontrol
sudo service fancontrol restart 

毎日実行するコマンドですが、毎回編集するのは飽きてしまいました。2 つのスクリプト (1 つはファン速度を高く、もう 1 つは低くする) を使用して、特定の時間に手動または自動で実行できるとします。

# 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

検索文字列を具体的にすると、ファイル内の他の文字列と一致する可能性が低くなります。

関連情報