Я пытаюсь найти путь к массиву имен файлов, затем что-то с ними сделать и заполнить строку (правильно отформатирован). Вот код / концепция
13 javascripts: setup
14 i=0
15 for source in `ls ${SOURCE_DIR}/js/*.coffee | sed -e "s:^.*\/\(\w*\).coffee:\1:"`; do\
16 sources[i]="--input ${OUTPUT_DIR}/js/$$source.js";\
17 i=$(i+1);\
18 echo "Compiling coffee script: $$source.coffee";\
19 coffee -bo "${OUTPUT_DIR}/js" -c "${SOURCE_DIR}/js/$$source.coffee";\
20 done;\
21 python2 ${CLOSURE_PATH}/bin/calcdeps.py --path ${CLOSURE_PATH}/../\
22 $${sources[0]} --compiler_jar ${CLOSURE_PATH}/bin/compiler.jar\
23 --output_mode compiled > ${OUTPUT_DIR}/compiled.js;
24 echo "Cleaning ${OUTPUT_DIR}/js"
25 @rm -rf ${OUTPUT_DIR}/js
Итак, я хочу присоединить массив к строке и экспортировать его в команду, начинающуюся с python2 в строке 21
. Проблема в том, что я даже не могу получить доступ к какому-либо значению в переменной sources
. Когда я заменяю строку 21
на echo $${sources[0]}
, она выводит --input output/js/main.js
, который является правильным входом.
Что делать? Кроме того, если бы вы могли указать на любые руководства по bash / Makefile, которые не включены в gnu.org
(долго = много времени), я был бы признателен. У меня есть опыт программирования с несколькими языками, но очень мало с bash, поэтому на данный момент это заставляет меня смеяться.
Спасибо.