나는 이미 회사를 떠난 누군가가 작성한 Nagios 체크 스크립트에 부딪 쳤고 거기에 운영자가있어 사용법을 이해할 수 없다.= ~ 피연산자를 사용하는 방법?
if [[ "$URL" =~ $ACTIVE ]] && [[ "$URL2" =~ $ACTIVE2 ]]; then
echo "OK: $HOST is ACTIVE in the Load Balancer"
exit 0
내 질문은 :
이 =~
무엇 이 쉘 스크립트에서 관련 부분은?
인터넷에서 확인해 본 결과 비트가 "피연산자의 비트를 뒤집어 썼다"는 것을 알았지 만 어디서 어떻게 사용하는지 이해하지 못합니다. 정교하게 설명해 주시겠습니까?
편집 # 1 : 이 전체 스크립트입니다
#!/bin/bash
#Purpose: Checks if proxy is active in the LB
#Date: May 09, 2011
#Variables
HOST=$1
URL=`wget --timeout=60 -w 3 -qO- http://$HOST:8080/proxy/keepalive?file=/workspace/temp/1`
URL2=`wget --timeout=60 -w 3 -qO- http://$HOST:8080/proxy/keepalive?file=/workspace/temp/1.txt`
ACTIVE="1"
ACTIVE2="ppp"
LOG="/tmp/PROXY-LB.log"
#Begin Code
if [ -z $HOST ]; then
echo "You must specify IPADDRESS (e.g. 68.67.174.34)"
exit 3
fi
if [[ "$URL" =~ $ACTIVE ]] && [[ "$URL2" =~ $ACTIVE2 ]]; then
echo "OK: $HOST is ACTIVE in the Load Balancer"
exit 0
else
echo "*** Problem: $HOST is out from the Load Balancer"
echo "`date`: *** HOST $HOST is out from the Load Balancer" >> $LOG 2>&1
exit 2
fi
#END
내 질문은이 수 없습니다합니다 (~
없이) 코더 사용이 대신?
if [[ "$URL" = $ACTIVE ]] && [[ "$URL2" = $ACTIVE2 ]]; then
편집 # 2 : 는 여기에 내가 시도 몇 가지 예입니다
$ d="hello"
$ [[ "$d" =~ *ll* ]] && echo "yes"
$ [[ "$d" =~ he* ]] && echo "yes"
yes
$ [[ "$d" =~ *lo ]] && echo "yes"
$
편집 # 3 : 가 좋아, 좀 더 테스트를 해봤 내가 지금 그것을 이해 생각 :
를$ [[ "$d" =~ he* ]] && echo "yes"
yes
$ [[ "$d" =~ *lo ]] && echo "yes"
$ [[ "$d" =~ h* ]] && echo "yes"
yes
$ [[ "$d" =~ lo$ ]] && echo "yes"
yes
$ [[ "$d" =~ ^he ]] && echo "yes"
yes
$ [[ "$d" =~ [a-z]ll[a-z] ]] && echo "yes"
yes
$
귀하의 도움과 정보에 대해 모두 감사드립니다.
아마도 이것이 해결책입니까? http://stackoverflow.com/questions/19441521/bash-regex-operator – cslotty
이 스크립트에서 특별히 사용 된 이유를 이해하는 데 어려움을 겪고 있습니다 ... 감사합니다.이 항목의 정보 또한 흥미 롭습니다. . –