Невозможно передать третий аргумент скрипту bash - PullRequest
1 голос
/ 16 марта 2020

Я думаю, что ответ будет довольно простым для вас, однако я не могу справиться с этим в одиночку. Прежде всего, функция в скрипте выглядит следующим образом:

function assertEqual() {

    local expected=$1
    local actual=$2
    local message=$3

    echo $message

    if [ "$actual" = "$expected" ]
    then
        echo "Test OK (actual value: $actual)"
        return 0
    else
        echo "Test FAILED, EXPECTED VALUE: $expected, ACTUAL VALUE: $actual, WILL ABORT"
        return 1
    fi
}

Логические функции c этой функции делают то, что должны делать, это правильно, однако я не могу найти способ вывести сообщение $ в консоль:

local message=$3
echo $message

Я вызываю такую ​​функцию:

assertEqual "$MOV_ID_REVS_RECS" $(echo $RESPONSE | jq .movieId) "Comparing id's"   
assertEqual 3 $(echo $RESPONSE | jq ".recommendations  | length") "Comparing recommendations length"    
assertEqual 3 $(echo $RESPONSE | jq ".reviews | length") "Comparing reviews length"

Вывод, который я получаю, выглядит так:

Test OK (HTTP Code: 200)
Test OK (HTTP Code: 200)
Test OK (HTTP Code: 200)
Wait for messages to be processed... 
Test OK (HTTP Code: 200)

Test OK (actual value: 2)

Test OK (actual value: 3)

Test FAILED, EXPECTED VALUE: 3, ACTUAL VALUE: 1, WILL ABORT

Вы можете видеть, что есть пустые белые строки, которые означает, что я неправильно передаю третий аргумент?

1 Ответ

0 голосов
/ 16 марта 2020

Проблема может состоять из нескольких слов в подстановке при передаче аргумента.

assertEqual "$MOV_ID_REVS_RECS" $(echo $RESPONSE | jq .movieId) "Comparing id's"   
assertEqual 3 $(echo $RESPONSE | jq ".recommendations  | length") "Comparing recommendations length"    
assertEqual 3 $(echo $RESPONSE | jq ".reviews | length") "Comparing reviews length"

Пожалуйста, попробуйте процитировать $(echo $RE...)> "$(echo $RE...)" в аргументах и ​​проверить результаты. В качестве альтернативы, попробуйте передать только assertEqual 3 test "Comparing reviews length", если все аргументы работают правильно.

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