запуск запятой в терминале работает, а затем выполнение той же команды с помощью b bash-скрипта не работает - PullRequest
0 голосов
/ 10 августа 2011
echo how many testcases 

read s1

echo Enter the Testcases

for (( c=1; c<=$s1; c++ ))

do

read a1

a[$c]=$a1

#echo ${a[$c]}

done





for (( c=1; c<$s1; c++ ))

do

str=${a[$c]}'|'

str1=$str1$str

done

str1=$str1${a[$c]}

echo $str1

str1=\($str1\)

echo $str1

CMD="ruby final2.rb --name "\"\/test_$str1\/\"

#echo $CMD

$CMD

У меня есть набор тестов final2.rb , который содержит test_1 test_2 test_3 test_4 test_5 test_6 test_7 в качестве тестовых сценариев.

Выше я создал скрипт, который будет работать только с таким количеством тестов, как 1 2 5 они будут преобразованы в шаблон ruby ​​final2.rb --name "/ test_ (1 | 2 | 5) /"

Как мы знаем, эта команда запускает тестовые сценарии: - test_1 test_2 test_3 в testuite final2.rb.

но при выполнении с использованием Bash Script набор тестов запускается только в течение миллисекунд, например DEMO

* Загруженный люкс final2

Начало

Завершено за 0,000135 секунд.

0 тестов, 0 подтверждений, 0 отказов, 0 ошибок *

но если я напишу ту же команду ruby ​​final2.rb --name "/ test_ (1 | 2 | 5) /" в терминале я запускаю нужные тестовые сценарии и вывод

*** Loaded suite final2

Начало

Завершено за 124.1212135 секунд.

3 теста, 6 утверждений, 0 сбоев, 0 ошибок ***

так

работает запятая в терминале, а затем выполнение той же команды скриптом не работает ...

любые предложения .. помощь

1 Ответ

0 голосов
/ 10 августа 2011

чтобы запустить системную команду, вам нужно заключить ее в эти кавычки "` ":

`CMD="ruby final2.rb --name "\"\/test_$str1\/\"`

еще одно: Системный вызов из Ruby

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