Здравствуйте, сообщество Stackoverflow,
Пожалуйста, простите меня за наивность, но у меня есть базовый скрипт цикла, выполняющий более сложный скрипт, который ищет текстовый файл для входных данных, которые у меня есть в виде массива.У меня это работает, я думаю, но я знаю, что это можно запустить лучше и автоматизировать.
Вот текстовый файл, к которому смотрит мой скрипт;
2014;14204;
2015;15042;
2015;15062;
...
end;
Вот скрипт bashЯ работаю как цикл;
{ while IFS=';' read YEAR1 PROJ1 YEAR2 PROJ2 YEAR3 PROJ3 fake
do
{ echo "$YEAR1" | egrep '^#|^ *$' ; } > /dev/null && continue
$local/script.sh \
--forinput1 $YEAR1/$PROJ1 \
--forinput2 $YEAR2/$PROJ2 \
--forinput3 $YEAR3/$PROJ3 \
done
} < textFile.txt
Я провел некоторые исследования сам и обнаружил кое-что, что, как я думал, будет работать, но не смог правильно реализовать это.Если бы вы могли дать мне несколько указателей, я был бы признателен.
Отредактировано: я приношу свои извинения, поэтому скрипт распознает текстовый файл следующим образом:
YEAR1;PROJ1;
YEAR2;PROJ2;
YEAR3;PROJ3;
Использование ";"как его разделитель.Он работает в цикле до последней переменной, которую он сделал.Однако для этой функции мне нужно добавить в текстовый файл дополнительные строки
YEAR4;PROJ4;
YEAR5;PROJ5;
end;
, а затем добавить скрипт
{ while IFS=';' read YEAR1 PROJ1 YEAR2 PROJ2 YEAR3 PROJ3 YEAR4 PROJ4 YEAR5 PROJ5 fake
do
{ echo "$YEAR1" | egrep '^#|^ *$' ; } > /dev/null && continue
$local/script.sh \
--forinput1 $YEAR1/$PROJ1 \
--forinput2 $YEAR2/$PROJ2 \
--forinput3 $YEAR3/$PROJ3 \
--forinput4 $YEAR4/$PROJ4 \
--forinput5 $YEAR5/$PROJ5 \
done
} < textFile.txt
То, что я надеюсь сделать, это добавить переменные в массивно не нужно добавлять дополнительный синтаксис в скрипт
Это не работает, но я думаю, что я смотрю по линиям
{ while IFS=';' read -a YEAR PROJ < textFile.txt
for ((i = 0; i < "${#YEAR[@]};${#PROJ[@]}"; i++)); do
{ echo "$YEAR[$i]" | egrep '^#|^ *$' ; } > /dev/null && continue
$local/script.sh \
--forinput[$i] ${YEAR[$i]}/${PROJ[$i]} \
done
}