次の配列と変数があります。
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 0
とfailed 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