为什么';我的bash脚本是否允许我进入pythonshell?

为什么';我的bash脚本是否允许我进入pythonshell?,bash,Bash,我编写了一个超级简单的bash脚本,让我进入一个pythonshell,其中包含了我需要的所有设置,但它从未真正进入pythonshell。我做错了什么 sudo su runnerdude . /home/runnerdude/foo/env/bin/activate cd /home/runnerdude/foo/bar python manage.py shell 我认为问题在于sudo的工作方式。假设您的脚本名为run_python.sh: . /home/runnerdude/foo

我编写了一个超级简单的bash脚本,让我进入一个pythonshell,其中包含了我需要的所有设置,但它从未真正进入pythonshell。我做错了什么

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

我认为问题在于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

尝试
sh-x脚本
并显示输出。学究式地说,不需要单引号内的行继续字符。