2015-04-02 3 views
-1

У меня есть серия тестов, и я не очень хорошо разбираюсь в bash. Но это инструменты, которые у меня есть. Здесь идет проблема.Параллельное тестирование с bash

Мне нужно grep для строки в обратном вызове. Я ищу «От =». Если эта строка есть, я в основном хочу перейти к другой функции, которую я создал, называемой BAIL, которая вызывает панику с сообщением.

ИЛИ Я хочу, чтобы это просто LOG, что поле FROM пустое, и продолжайте.

Если бы это было рубин было бы

(TURE && TRUE) || TRUE 

Однако у меня есть здесь в Баш:

echo "$inbound_callback" | grep "From=$FROM" || BAIL "IB: FROM was NOT Blocked '$FROM'") || \ 
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'" 

ли я обернуть условными в чем-то?

+0

Тест действительно проверяет удаление $ FROM var. И если бы это не было, тогда это остановило бы тест, а BAIL .. –

+0

Неясно, что содержит '$ FROM', или как мы могли бы определить, пуст ли' From = 'без знания текста по полю. Является ли это отдельной линией? За ним последует новая строка или какой-то другой текст или вообще ничего? – tripleee

ответ

1

Вам вообще не нужны внешние утилиты. Сама оболочка может проверять строки и выполнять сопоставление.

case $inbound_callback in 
    *From=*) BAIL "IB: FROM was NOT Blocked '$FROM'";; 
    *)  LOG "[$FROM -> $TO] IB: Found FROM '$FROM'";; 
esac 

Это просто ищет буквальном strinng From= где-нибудь в значении inbound_callback. Если это не то, что вы хотите, можете перефразировать свой вопрос, чтобы выяснить, что именно должно быть.

Ваше описание проблемы звучит как вы хотели сказать

echo "$inbound_callback" | grep -q "From=" && 
BAIL "IB: FROM was NOT Blocked '$FROM'" || 
LOG "[$FROM -> $TO] IB: Found FROM '$FROM'" 

(Обратите внимание на то && для истинного дела и использование grep -q, чтобы избежать выхода из успешного матча. Я удалил $FROM полностью, а вы говорите, что просто хотите найти пять символов From=.)

Смежные вопросы