#!/bin/ksh
print -n "\nEnter the client ID : "
read clientID
print $clientID
data=$(grep jms/erms/$clientID /export/home/a0706838/test.txt;)
print "\n $data"
getClientID=$(echo "$data" | awk '{print $8}'| perl -lne 'print substr($_,0,5)';)
print "$getClientID"
getClientID1=$(echo "$data" | awk '{print $9}'| perl -lne 'print substr($_,19,5)';)
getClientID2=$(echo "$data" | awk '{print $15}'| perl -lne 'print substr($_,20,5)';)
if [ -z "$data" ]
then
print "Setup is not present on $i for $clientID"
print "Please login to server $i manually and check for the client $clientID on path /apps/WebSphere/NA70_TBA/config/cells/CellV70_TBA/ in resources.xml file"
print "==============================================================================================================================================================="
elif [ -z "$getClientID" ] | [ -z "$getClientID1" ] | [ -z "$getClientID2" ]
then
print "Setup for client $clientID has been not done correctly on server $i. Please contact WasTech team for this."
print "==============================================================================================================="
else
print "\n"
print "Setup is valid on $i for $clientID for CellV70_TBA path"
print "====================================================================================================="
fi
test.txt 파일
<factories xmi:type="resources.jms.mqseries:MQQueue" xmi:id="MQQueue_1549053088921" name="ERMS Message Queue - 16661" jndiName="jms/erms/16662" persistence="QUEUE_DEFINED" priority="QUEUE_DEFINED" specifiedPriority="0" expiry="UNLIMITED" specifiedExpiry="0" baseQueueName="TBAT.16662.SPM.ERMSIN" CCSID="1208" useNativeEncoding="true" integerEncoding="Normal" decimalEncoding="Normal" floatingPointEncoding="IEEENormal" targetClient="MQ" queueManagerPort="1414" sendAsync="QUEUE_DEFINED" readAhead="QUEUE_DEFINED">
답변1
||
쉘에 쓰여진 것은 논리적인 "or"입니다. 파이프( |
)는 또 다른 이야기입니다. 특히 파이프의 종료 상태는 마지막 명령의 종료 상태이므로 여기서는 마지막 조건만 적용됩니다.
[ -z "$getClientID" ] | [ -z "$getClientID1" ] | [ -z "$getClientID2" ]
~해야 한다
[ -z "$getClientID" ] || [ -z "$getClientID1" ] || [ -z "$getClientID2" ]
주어진 XML을 구문 분석하는 것도 문제가 있고 깨지기 쉽습니다. 그러나 파일에서 구문 분석하려는 내용을 알려주지 않았기 때문에 실제로 많이 말할 수는 없습니다. 이는 질문의 요점이 아닙니다. name
더 많은 단어를 추가하거나 일부 단어를 제거하는 방식으로 속성 값이 변경 되면 중단될 수 있습니다. 또한 속성의 순서에 따라 달라집니다. 의미상으로 말하면 순서는 XML 형식에 중요하지 않으며 속성 사이의 공백의 양이나 유형도 중요하지 않습니다.