2013-07-24 3 views
-1

Я получил эту ошибку:Ошибка Shell сценария с помощью Cygwin

./script_test.sh 

./script_test.sh: line 3: syntax error near unexpected token `$'do\r'' 

'/script_test.sh: line 3: `for ((j=0; j<"$N"; j++)) ; do 

/бен/ш Этот скрипт запустит 10 моделирования для каждого значения PARAM1_LIST. Результаты моделирования будут храниться в папках с именем «myTest-i-j», где i - эффективное значение PARAM1_LIST для каждой моделировки, а j - это от 1 до 10 повторений для каждого i.

N=10 
PARAM1_LIST=(1 2 5 10) 
for ((j = 0 ; j < $N; j++)); do 
for i in ${PARAM1_LIST[@]}; do 
java -jar N3Sim.jar myConfigFile.cfg myTest-${i}-${j} $i 
done 
done 

Любая помощь была бы оценена. Благодаря

+1

Код в ошибке и код в вашем примере не выстраиваются в линию, и нет ничего плохого в коде в вашем примере. Убедитесь, что $ N не находится в кавычках. – doublesharp

ответ

2

bash не лечит ДОС-стандарт \r\n как маркер конца линии, так что \r трактуется как обычный символ, который сфолил на его синтаксический разбор. Вам нужно изменить окончание строки только на \n.

+1

И способ сделать это с помощью 'dos2unix', который является частью базовой установки Cygwin. – Yaakov

+0

Спасибо, ребята. Теперь работает. Мне просто нужно преобразовать в unix-формат, используя dos2unix в cygwin. – leepyron

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