获得所需输出的建议

Suggestions to get desired output

需要您的帮助来完成以下脚本以获得所需的输出。

建议一些输入以在不进行重大更改的情况下实现此目标。

    echo " enter file name "
    read file
    if [[ -f "$file"  &&  -s "$file" ]]
    then
        echo " file exist, and not empty "
        while IFS='' read -r line
        do
            echo "Querying --->"$line""
            for i in 01 02 03 04 05
            do
                query -se=$i "q blabla node='$line'" >/dev/null
                if [ $? -ne 0 ]
                then
                    echo "$line" >>failed.lst
                else
                    echo "$line" >>success.lst
                fi
            done
        done<"$file"
    else
        echo "File doesn't exist/empty"
    fi

当你想query对for列表中的所有值执行时,你可以使用这种方法。

    while IFS='' read -r line
    do
        echo "Querying ---> $line"
        query_ok=1 # some false value
        for i in 01 02 03 04 05
        do
            query -se=$i "q blabla node='$line'" >/dev/null
            if [ $? -eq 0 ]
            then
                query_ok=0 # true
            fi
        done
        if [ ${query_ok} -ne 0 ]
        then
           echo "$line" >>failed.lst
        else
           echo "$line" >>success.lst
        fi
    done<"$file"

当你发现一个工作时不需要测试 i 的所有值时,你可以使用 break.

while IFS='' read -r line
do
    echo "Querying ---> $line"
    query_ok=1 # some false value
    for i in 01 02 03 04 05
    do
        query -se=$i "q blabla node='$line'" >/dev/null
        if [ $? -eq 0 ]
        then
            query_ok=0 # true
            break # do not test other values of i
        fi
    done
    if [ ${query_ok} -ne 0 ]
    then
       echo "$line" >>failed.lst
    else
       echo "$line" >>success.lst
    fi
done <"$file"

题外话:您还可以使用 var 来计算 query 成功的值的数量。