답변:
awk와 더 정확하면서도 간단하게 일치시킬 수 있습니다.
if netstat -lnp | awk '$4 ~ /:8080$/ && $7 ~ /java/ {exit(0)} END {exit(1)}'; then …
명령의 구조를보다 밀접하게 일치시키기 위해 쉘의 문자열에서 와일드 카드 일치를 수행하는 이식 가능한 방법은 case
구문입니다.
case "$(netstat -lnp | grep ':8080')" in
*java*) echo "Found a Tomcat!";;
esac
또 다른 실제 예 :)
if [[ $(HEAD mycompany-intranet.com | grep '200\ OK' | wc -l) = "1" ]]; then
echo doing some intranet settings (proxy, etc)
else
echo doing some work-at-home settings (proxy, etc)
fi
HEAD
합니까? 시스템의 사용자 정의 기능 또는 별명입니까?
usr/bin/HEAD → lwp-request
. 그리고 LWP 요청은 것으로 보인다 이것 . 확실하지 않습니다. 기본적으로 모든 것이 있는지에 대한 방법 (수동으로 확실하지는 않음). 소문자 usr/bin/head
도있는 것 같습니다 .
-q
/ dev / null로 리디렉션하는 대신 grep 하는 옵션에 유의하십시오 . 을 사용-q
하면 grep은 아무것도 출력하지 않으며 첫 번째 일치 후 검색을 중지합니다.