在 bash/python/perl 脚本中运行一系列交互式 shell 命令



目前,我执行以下步骤:

a. grep 用于进程的 pid 并杀死它。

ps -aux | grep foo.bar  # process of interest
kill -9 pid_of_foo.bar  # kill the process

b. 启动虚拟环境

cd {required_folder}
sudo virtualenv folder/
cd {folder2}
source bin/activate

c. 在外壳模式下启动 manage.py

cd {required folder}
sudo python manage.py shell

d.在交互式命令行管理程序中,执行以下命令:

from core import *
foo.bar.bz.clear.state()
exit

e. 执行脚本

   /baz/maz/foo

在 bash 中,我们可以写下一系列命令,但是是否可以使用 bash 和 execute 命令在 django 中运行交互式 shell?我想知道上述步骤是否可以脚本化。

谢谢

你需要一个这样的脚本:

#!/bin/bash
# kill all foo.bar's instances
for pid in $(ps -aux | grep foo.bar | grep -v grep | awk '{print $2;}'); do
    kill $pid
done
# start virtualenv
cd {required_folder}
...
# Start the manage.py in shell mode
cd {required folder}
cat << EOF | sudo python manage.py shell
from core import *
foo.bar.bz.clear.state()
exit
EOF
# Execute a script 
/baz/maz/foo

脚本的关键点是 HEREDOC python 片段。看看我刚刚在控制台中尝试的示例:

[alex@galene ~]$ cat <<EOF_MARK | python -
> import sys
> print "Hello, world from python %s" % sys.version
> exit
> EOF_MARK
Hello, world from python 2.7.6 (default, Nov 22 2013, 22:57:56)
[GCC 4.7.2 20121109 (ALT Linux 4.7.2-alt7)]
[alex@galene ~]$ _

最新更新