前言
在linux上,最常用的编程语言是shell,其次是python。而这两种语言,很多时候需要配合使用。本文就研究一下这两种语言互相调用的方法。
参考文档:
shell调用python
调用python脚本
shell调用python脚本,直接调用即可,例如:
1 | python main.py |
调用python模块
举个简单的例子,我们想要对curl获取的结果进行json格式化。
假设安装了jq,可以使用jq命令:
1 | curl -s "http://rap2api.taobao.org/app/mock/241888/example/1578301745121" | jq |
假设没有安装jq,那我们可以使用python的 json.tool 模块:
1 | curl -s "http://rap2api.taobao.org/app/mock/241888/example/1578301745121" | python -m json.tool |
调用python函数
1、test.py 内容为:
1 | #!/usr/bin/env python |
2、shell中调用 test.py 中的方法
1 | python -c 'import test;print test.helloworld()' |
python调用shell
调用shell命令
main.py内容为
1 | import os |
其中,val的值是exit code。
执行main.py,python main.py
调用shell脚本
1、main.sh 内容为
1 |
|
2、python 调用 main.sh
1 | import os |
获取shell指令的结果
例子:获取echo命令结果。
1 | import os |
高级例子:获取curl命令的返回结果,转化成dict。
1、main.sh 内容为
1 |
|
2、python 调用 main.sh
1 | import os |