2014-02-08 57 views
0

目前,我做以下步驟:在bash /蟒蛇/ perl腳本運行的一系列互動shell命令

一個。 grep進程的pid並殺死它。

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

b。啓動virtualenv

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

c。在shell模式下啓動manage.py

cd {required folder} 
sudo python manage.py shell 

d。在交互式管理shell中,執行以下命令:

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

e。執行腳本

/baz/maz/foo 

在bash中,我們可以寫下一系列命令,但是否可以運行使用bash Django的交互式shell和執行命令?我想知道是否可以對上述步驟進行編碼。

感謝

+1

友情建議:嘗試「pkill foo.bar」作爲第一位。 –

回答

1

都需要這樣一個腳本:

#!/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蟒蛇片段。看看我剛剛在控制檯中嘗試過的示例:

[[email protected] ~]$ 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)] 
[[email protected] ~]$ _