如何在我的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只需点击它。
答案 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