Bash Пока L oop Продолжить Несмотря на не возвращение 0 - PullRequest
0 голосов
/ 23 января 2020

Я пишу bash скрипт, который автоматизирует использование других python тестов (imagedeploy, hydrorationwiring). Сценарий bash просматривает список имен устройств в формате .txt, затем перемещается по списку и выполняет 2 действия (развертывание изображения, подключение к гидратации) для каждого имени в .txt.

Что происходит, так это то, что тест гидратации будет возвращать ненулевое возвращаемое значение в конце, что ломает l oop и завершает скрипт.

Я хочу, чтобы скрипт продолжал идти вниз список p, независимо от ненулевых возвратов, до тех пор, пока не будет затронуто каждое устройство в списке p.

Мой вопрос: как я могу продолжить, пока l oop продолжится независимо от ненулевых возвратов.

#!/bin/bash


if [ -z "$1" ]
    then
        echo "Usage: "devices.txt""
    exit 1
fi


FILENAME=$1
RESULTFILE="/home/user/ssim-results/RduLabTestResults"
date >> $RESULTFILE

while read p; do
    echo "TESTING $p:"
    LOGFILE="/home/user/ssim-results/RduLabTestLog_${p}.log"
    SUMMARYFILE="/home/user/ssim-results/RduLabTestLog_${p}.summary"




        #echo "STEP1: imagedeploy -d $p --latest-release4"
        echo "STEP1: imagedeploy -d $p --latest-release4"
        #imagedeploy -d $p --latest-release4

        if [ $? -eq 0 ]   #imagedeploy pass/failure condition
        then
            echo "STEP2: LLDP check"
            #runtests.sh -l INFO --vx-img -i /home/frogs/vmlocker/cloud/vx/latest-vx-rel $TESTS_HOME/tests/platform/HydrationWiring.py -d $p -T $LOGFILE -r $SUMMARYFILE
            runtests.sh -l INFO --vx-img -i $VXREL3 $TESTS_HOME/tests/platform/HydrationWiring.py -d $p -T $LOGFILE -r $SUMMARYFILE
            echo "STEP3: checking result"
            if grep --quiet success $SUMMARYFILE
                then 
                echo "$p PASS" >> $RESULTFILE
            else
                echo "$p FAIL" >> $RESULTFILE 
            fi

        else

            echo "imagedeploy failed"
        fi


done <$FILENAME

ImageDeploy закомментирован, потому что imagedeploy работает как задумано. Проблема в "шаге 2". Тестирование. sh Гидравлическая проводка

Вывод:

FAILED (errors=1)
STEP3: checking result

Тестировалось только первое устройство в моем списке, потому что оно вышло из строя, я хотел бы, чтобы вывод был примерно таким:

FAILED (errors=1)
STEP3: checking result

next device...
PASS
STEP3: checking result

next device...
FAILED (error=1)
STEP3: checking result

next device...
Passed
STEP3: checking result

et c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...