/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
이스케이프해야 합니다 .&