我想要一个激活虚拟环境的脚本(在shell和cron中),然后运行带有所有参数IN的virtualenv传递的脚本。
这就是我现在对prod.sh所拥有的:
#!/bin/bash
. $VE_DIR/Production_VE/bin/activate
python $0 "$@"
然后我试试这个:
hostname:~$prod.sh myscript.py -c arg1 -fu
我收到此错误:
File "/home/username/prod.sh", line 3
. $VE_DIR/Production_VE/bin/activate
^
SyntaxError: invalid syntax
我尝试切换到源:
#!/bin/bash
source $VE_DIR/Production_VE/bin/activate
python $0 "$@"
错误改变了,但现在:
File "/home/username/prod.sh", line 3
source $VE_DIR/Production_VE/bin/activate
^
SyntaxError: invalid syntax
对于其他上下文,我希望能够在CentOS 6.5 VPS和Mac OS上运行此脚本。
这张照片出了什么问题?
谢谢!
答案 0 :(得分:0)
在你的bash脚本中,$ 0是“prod.sh”,它不是python脚本。变化
python $0 "$@"
到
python "$@"
答案 1 :(得分:0)
我刚创建了一个类似于你的脚本,运行良好。我觉得这很奇怪,你添加一个问题。但是,当我看到你的错误时:
File "/home/username/prod.sh", line 3
source $VE_DIR/Production_VE/bin/activate
^
SyntaxError: invalid syntax
它看起来像Python错误而不是bash错误。你犯的错误是:
python $0 "$@"
您应该删除$ 0,因为它包含bash脚本的路径。
python "$@"