파일을 자동으로 편집하는 스크립트를 만들고 명령을 실행합니다.

파일을 자동으로 편집하는 스크립트를 만들고 명령을 실행합니다.

포럼을 검색했지만 초보자이기 때문에 이해할 수 있는 내용을 찾을 수 없습니다.

텍스트의 특정 줄 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모든 항목을 교체해야 함을 의미하며, 기본적으로 발견된 첫 번째 항목만 교체됩니다.

검색 문자열을 구체적으로 설정하면 파일의 다른 항목과도 ​​일치할 가능성이 줄어듭니다.

관련 정보