如何解决这个bash-python交互?
我有3个文件,让我们逐一查看如何解决这个bash-python交互?,python,bash,Python,Bash,我有3个文件,让我们逐一查看 params.conf [a] [b] [c] [d] [e] parsing.py from ConfigParser import SafeConfigParser parser = SafeConfigParser() parser.read('params.conf') lst=parser.sections() print lst demo.sh #! /bin/bash value=$(python parsing.py) echo "$valu
params.conf
[a]
[b]
[c]
[d]
[e]
parsing.py
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('params.conf')
lst=parser.sections()
print lst
demo.sh
#! /bin/bash
value=$(python parsing.py)
echo "$value"
运行demo.sh
后,我应该会得到输出['a'、'b'、'c'、'd'、'e']
,我得到了
但是,当我进入下一个层次时,有几个问题
- 我想使用list元素,所以现在我需要使用
在bash文件中解析它,我不希望这样,我更喜欢在bash中以数组的形式访问sed
,以便以后使用它list
- 目前我正在打印一个
,但我不能总是这样做。因为我的python文件中可能有多个列表
,而我就是负担不起打印每个列表并从bash检索它们。因此,我可以从python返回一个变量到bash吗?不知何故,我正在从另一个列表
文件中搜索类似bash
asource
的hack文件bash
- 最后,我希望在我的
文件中有多个函数,并尝试从bash访问特定的函数返回值。我能做到吗?就像调用整个python
文件一样,我可以从python
文件调用特定的python
函数
#! /bin/bash
lst=$(python parsing.py)
for i in $lst
do
echo $i
done
params.conf与您的相同
输出
a
b
c
d
e
希望这能帮助你解决一些问题
也可以从shell脚本调用python中的特定函数,如下所示
多功能python文件
import sys
def foo():
print 'i am foo'
def func():
print 'i am func'
def bye():
print 'i am bye'
if __name__ == "__main__":
if len(sys.argv)==2:
x = getattr(sys.modules[__name__], sys.argv[1])
x()
和shell脚本(我使用命令行参数来命名python函数)
输出
# ./demo.sh foo
i am foo
# ./demo.sh func
i am func
# ./demo.sh bye
i am bye
谢谢你的回答。真是帮了大忙,+1。
#! /bin/bash
echo $(python params.py $1)
# ./demo.sh foo
i am foo
# ./demo.sh func
i am func
# ./demo.sh bye
i am bye