![建立一個腳本來自動編輯檔案並執行命令](https://rvso.com/image/1072223/%E5%BB%BA%E7%AB%8B%E4%B8%80%E5%80%8B%E8%85%B3%E6%9C%AC%E4%BE%86%E8%87%AA%E5%8B%95%E7%B7%A8%E8%BC%AF%E6%AA%94%E6%A1%88%E4%B8%A6%E5%9F%B7%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
我搜尋過論壇,但作為新手找不到我能理解的東西。
我正在嘗試創建一個腳本來編輯文字上的 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
意思是「搜尋」。在/
將命令分隔開的分隔符號之後,緊接在後的是要搜尋的字串,直到下一個(未轉義) /
。\/
是一個轉義的,意思/
是:「將 next 解釋/
為屬於搜尋字串的文字字符,而不是作為命令不同部分的分隔符。然後跟在您替換的字串後面,以 結尾/
。在終止後/
,您可以添加一個重要的選項是g
,這意味著預設情況下,僅替換找到的第一個匹配項。
使搜尋字串具體化可以減少它與文件中其他內容相符的機會。