2011-04-22 65 views
0

所以,我有叫refre.sh这个简单的小shell脚本,从SVN更新,并调用一个Django命令:呼叫Django的命令从手动调用不同

echo "Refresh..." 
svn update 
python manage.py collectstatic --noinput --settings=settings.prod 

当我./refre.sh执行脚本,将输出:

Refresh... 
'nknown command: 'update 
Type 'svn help' for usage. 
Unknown command: 'collectstatic' 
Type 'manage.py help' for usage. 

但是当我在shell中手动输入命令,我得到正确的输出。

这导致我认为有一个环境问题或类似的东西,因为我有Django本地安装,并没有使用全局安装(也是本地安装python,但我已经把完整的路径正确的Python,并没有帮助)。

所以,我必须设置一些环境变量或我错过了什么?

+0

你如何执行该脚本? – vartec 2011-04-22 14:19:51

+0

这个脚本叫做refresh.sh,所以我把它叫做./refresh.sh – 2011-04-22 14:24:01

回答

2

首先你应该在剧本第一行之前有#!/bin/sh

当然,您必须检查您正在使用的编辑器是否保存了UNIX line endings\n)而不是Windows的编辑器(\r\n)。

+0

做到了这一点,它只是加深了这个谜团:现在它说:“sh:./refre.sh:/ bin/sh^M:糟糕的解释器: 无此文件或目录”。不知道“^ M”是什么〜X( – 2011-04-22 14:35:22

+0

^M是\ r,换句话说就是DOS/Windows行结尾。你用什么编辑这个文件? – vartec 2011-04-22 14:36:17

+0

就是这样!!! Windows新行问题。你可以发布这个答案而不是评论,所以其他人都会看到它吗? – 2011-04-22 14:45:38