설명하다

설명하다

/home/script 아래에는 187개의 bash 스크립트가 있으며 모두 다음 줄을 포함합니다.

kill -PIPE $PID 

아래와 같이 모든 스크립트에서 이 줄 앞에 다음 단어를 추가하겠습니다.

[[ $KILL_STATUS = YES ]] && kill -PIPE $PID 

그 이유는 각 스크립트를 편집하지 않고 sed와 같은 Linux 명령을 사용하여 한 번에 수행하기 위해서입니다.

답변1

$ for i in /home/scrript/*; do sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i"; done

설명하다

  • for i in /home/scrript/*; do FOO; done: 의 모든 파일에 대해 이 작업을 반복합니다 /home/scrript. 쉘 구성에 따라 도트 파일을 건너뛸 수 있습니다.
  • sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i": 각 파일( "$i")에 대해 "in-place"( sed -i) 를 . kill -PIPE $PID로 바꿉니다. 그렇지 않으면 특별한 의미가 있으므로 [[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID이스케이프해야 합니다 .&

관련 정보