鉴于此(以及更多...):
compile_coffee() {
echo "Compile COFFEESCRIPT files..."
i=0
for folder in ${COFFEE_FOLDER[*]}
do
for file in $folder/*.coffee
do
file_name=$(echo "$file" | awk -F "/" '{print $NF}' | awk -F "." '{print $1}')
file_destination_path=${COFFEE_DESTINATION_FOLDER[${i}]}
file_destination="$file_destination_path/$file_name.js"
if [ -f $file_path ]; then
echo "+ $file -> $file_destination"
$COFFEE_CMD $COFFEE_PARAMS $file > $file_destination #FAIL
#$COFFEE_CMD $COFFEE_PARAMS $file > testfile
fi
done
i=$i+1
done
echo "done!"
compress_javascript
}
澄清一下,除了#FAIL 行之外的所有内容都可以正常工作,如果我做错了什么,请告诉我,我遇到的问题是:
- 该行执行并执行它必须做的事情,但不要写我放在“file_destination”中的文件。
- 如果删除该路由中的文件夹(它与此脚本相关,见下文),bash 会抛出错误,指出该文件夹不存在。
- 如果我再次创建文件夹,则没有错误,但也没有文件。
- 如果我将 $file_destination 更改为“testfile”,它会创建具有正确内容的文件。
- $file_destination 路径没问题-如您所见,我的脚本与它相呼应-
- 如果我回显整行,则使用参数复制确切的命令并将其执行到脚本所在目录中的 shell 上,它可以工作。
我不知道这是怎么回事,想了两个小时......
脚本输出(真实路径):
(alpha)[pyron@vps herobrine]$ ./deploy.sh compile && ls -l database/static/js/
===============================
=== Compile ===
Compile COFFEESCRIPT files...
+ ./database/static/coffee/test.coffee -> ./database/static/js/test.js
done!
Linking static files to django staticfiles folder... done!
total 0
完成命令:
coffee --compile --print ./database/static/coffee/test.coffee > ./database/static/js/test.js
我错过了什么?
编辑我在这方面取得了一些进展。在 shell 中,如果我停用 python virtualenv,脚本可以工作,但如果我从脚本中调用 deactivate,它会说找不到命令。