我正在嘗試爲文件名數組遍歷一個路徑,然後對它們進行一些操作並填充爲一個字符串(格式正確)。下面的代碼/概念Bash Makefile連續排列
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
所以,我想加入一個數組爲字符串,並將其導出到開始上線21
python2命令。問題是我甚至無法訪問sources
變量中的任何值。當我將21
行替換爲echo $${sources[0]}
時,它會輸出--input output/js/main.js
這是正確的輸入。
怎麼辦?另外,如果你可以指出任何不在gnu.org
(長=耗時)的bash/Makefile指南,我會很感激。我有用幾種語言編程的經驗,但用bash很少,所以在這一點上,這讓我發笑。
謝謝。
如果你想運行python代碼,爲什麼不把所有東西寫在python中? – 2012-02-17 19:02:20
該代碼不是我的 – farnoy 2012-02-17 19:03:58
如果我正確地輸入了你想要完成的任務,我不認爲make文件會以這種方式工作。 (我會很高興?被證明是錯誤的;-)。你知道http://benjamin.smedbergs.us/pymake/嗎? '主要是GNU兼容的'make'的python實現,也許這會有所幫助。此外,還不清楚,你是否想單獨使用bash,看起來像你擁有什麼,或者make文件中的bash代碼?祝你好運。 – shellter 2012-02-17 19:32:54