#!/usr/bin/expect -f
ps
ps -ef > test.txt
이제 test.txt에 특정 키워드가 있는지 확인하고 싶다면 어떻게 해야 합니까?
예를 들어 "apache" 또는 "fast"입니다.
여기서 if 문을 사용할 수 있나요? 그렇다면 어떻게 사용하나요?
답변1
첫째, 첫 번째 shebang 줄은 원하는 스크립트가 아닙니다. 쉘의 용도는 제한적일 것으로 예상됩니다. 이는 그중 하나가 아닙니다.
첫 번째 줄은 다음과 같아야합니다
#!/bin/bash
당신의 경우에는
그 다음에
ps -ef > test.txt
grep -e fast -e apache test.txt
이 단어가 포함된 모든 줄을 인쇄합니다.
또는 파일 단계에 쓰기를 건너뛰고 다음과 같이 한 줄로 수행할 수 있습니다.
ps -ef | grep -e fast -e apache
편집 조건 확인:
ps -ef | grep -e fast -e apache | grep -v grep > dev/null; result=${?}
if [ ${result} -eq 0 ]
then
echo "Found one or more occurrences of 'apache' and/or 'fast'"
else
echo "Searched strings were not found"
fi
답변2
여기서 배열을 선언할 수 있습니다.
#!/bin/bash
string=('fast' 'apache')
ps -ef > test.txt
for i in "$string[@]"
do
grep "$i" test.txt
done
아니면 라인에서 직접 수행하고 ps
해당 프로세스만 저장할 수도 있습니다.
#!/bin/bash
string=('fast' 'apache')
for i in "$string[@]"
do
ps -ef | grep "$i" > ps_output_of_$i.txt
done
시도 해봐