我写了一个超级简单的bash脚本,让我进入一个python shell,所有设置都像我需要但它实际上从未进入python shell。我做错了什么?
sudo su runnerdude
. /home/runnerdude/foo/env/bin/activate
cd /home/runnerdude/foo/bar
python manage.py shell
答案 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