有没有办法让默认终端窗口从shell脚本中执行我的python程序?

时间:2016-05-15 18:39:50

标签: python bash macos shell

如何在我的Mac(OS X 10.9.2)上记录一个特定的终端窗口,点击后在shell脚本中执行我的python程序?

在我的job.sh文件中,我有这个:

#!/bin/bash
python python_script.py

这是我在python_script.py文件中的内容:

import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()

基本上我不想打开我的终端窗口,键入./job.sh并运行命令,我希望我的终端窗口默认运行./job.sh只需点击它。

2 个答案:

答案 0 :(得分:0)

您可以将命令放在.profile.bash_profile.bashrc文件中:

echo 'python python_script.py' >> ~/.profile
# or
# echo '/path/to/job.sh' >> ~/.profile

当您打开一个新终端时,将获取.profile文件并运行您的作业。

<小时/> 注意:要放入文件的命令为python python_script.py/path/to/job.sh

答案 1 :(得分:0)

想出来!我的情况(OS X)中的.bash_profile文件需要

'python python_script.py' >> ~/.bash_profile
由于读取bash配置文件的顺序,我的.profile被忽略了

命令。对于任何不了解这一点的人(像我一样直到今天),绝对要结帐http://hayne.net/MacDev/Notes/unixFAQ.html#shellStartup

这个问题的接受答案让我在那里,https://apple.stackexchange.com/questions/12993/why-doesnt-bashrc-run-automatically

之后,只需要在正确的目录中执行脚本即可。

另外要小心,确保在完成后正确退出服务器(ctrl-c),因为我之前意外关闭了工作区,导致进程绑定到默认端口并继续给我一个由此解决的错误。 socket.error: [Errno 48] Address already in use