为什么我的bash脚本不允许我进入python shell?

时间:2012-10-26 18:03:26

标签: bash

我写了一个超级简单的bash脚本,让我进入一个python shell,所有设置都像我需要但它实际上从未进入python shell。我做错了什么?

sudo su runnerdude
. /home/runnerdude/foo/env/bin/activate
cd /home/runnerdude/foo/bar
python manage.py shell

1 个答案:

答案 0 :(得分:2)

我认为问题在于sudo的工作方式。假设您的脚本名为run_python.sh:

. /home/runnerdude/foo/env/bin/activate
cd /home/runnerdude/foo/bar
python manage.py shell

然后你可以用:

调用它
sudo -u runnerdude run_python.sh

或者,如果您坚持,您的脚本可能如下所示:

sudo -u runnerdude '. /home/runnerdude/foo/env/bin/activate; \
    cd /home/runnerdude/foo/bar; \
    python manage.py shell'

注意单引号和反斜杠将命令连接在一起。要运行脚本:

run_python.sh