다음 변수와 명령을 그룹화하여 1개씩 읽는 방법

다음 변수와 명령을 그룹화하여 1개씩 읽는 방법

다음과 같은 배열과 변수가 있습니다.

httpurl="http://www.nnin.com"
firstquery=$(curl -s -X POST -d "UID=user1&PWD=1111" $httpurl)
name="firstcust"
ip="105.105.0.1"

httpurl="http://www.mmim.com"
secondquery=$(curl -s -X POST -d "UID=user2&PWD=2222" $httpurl)
name="secondcust"
ip="106.106.0.1"

httpurl="http://www.ooio.com"
thirdquery=$(curl -s -X POST -d "UID=user3&PWD=3333" $httpurl)
name="thirdcust"
ip="107.107.0.1"

다음은 내가 사용하는 코드입니다.

httpurl="http://www.nnin.com"
firstquery=$(curl -s -X POST -d "UID=user1&PWD=1111" $httpurl)
name="firstcust"
ip="105.105.0.1"

status=$?

if [ $? -eq 0 ]; then
    echo "$name : $ip (success)"
    exit $status
else
    echo "$name : $ip (failed)"
    exit $status
fi

쿼리와 변수를 그룹화하는 방법은 무엇입니까? (이 변수는 $status명령의 오류 코드를 저장합니다 curl.) 아래의 각 쿼리와 변수를 읽고 출력(누군가가 사용하라고 제안한 for)을 인쇄하고 다음 쿼리와 변수로 이동하는 코드를 어떻게 만들 수 있습니까? 이 스크립트의 목적은 다음 URL의 반환 코드를 확인하고 출력 Success for 0failed for non-zero.

답변1

다음과 같은 것을 사용하십시오:

httpurl[0]="http://www.nnin.com"
query[0]="curl -s -X POST -d 'UID=user1&PWD=1111'"
name[0]="firstcust"
ip[0]="105.105.0.1"

httpurl[1]="http://www.mmim.com"
query[1]="curl -s -X POST -d 'UID=user2&PWD=2222'"
name[1]="secondcust"
ip[1]="106.106.0.1"

httpurl[1]="http://www.ooio.com"
query[1]="curl -s -X POST -d 'UID=user3&PWD=3333'"
name[1]="thirdcust"
ip[1]="107.107.0.1"

for i in 0 1 2
  do

    ${query[$i]) ${httpurl[$i]}

    status=$?

    if [ $? -eq 0 ]; then
        echo "${name[$i]} : ${ip[$i]} (success)"
        #exit $status
    else
        echo "${name[$i]} : ${ip[$i]} (failed)"
        #exit $status
    fi
  done

인용하다: Bash 참조 매뉴얼 - 배열

관련 정보