#!/bin/sh
case "$1" in
start)
ulimit -s 1024
/usr/bin/oscam --config-dir /etc/tuxbox/config/oscam --daemon --pidfile /tmp/oscam.pid --restart 2 --utf8
;;
stop)
kill `cat /tmp/oscam.pid` 2> /dev/null
;;
restart|reload)
$0 stop
sleep 1
$0 start
;;
version)
echo "svn8631"
;;
info)
echo "oscam svn8631"
;;
*)
echo "Usage: $0 start|stop|restart"
exit 1
;;
esac
exit 0
从上面的文本我需要创建一个python命令,它总是只返回在引号之间写入 oscam svn8631 的内容!到目前为止,我唯一能做的就是使用此代码返回此文本的另一个区域
try:
f = open("/etc/init.d/softcam", "r")
content = f.read()
f.close()
except:
content = ""
contentInfo = content.split("\n")
if (content != ""):
for line in contentInfo:
if line.__contains__("usr/bin/"):
idex = line.index("n/")
line = line[(idex + 2):]
return line
这当然会返回 usr / bin 文本之后的内容,而我需要在 info> 之后的另一个区域。有人可以帮我吗?我不知道如何让我的脚本阅读我需要的这个特定区域!提前谢谢!
答案 0 :(得分:0)
使用您创建的content
变量,
“oscam svn8631”文本可以用:
for chunk in content.split(";;"):
if chunk.strip().startswith('info)'):
return chunk.split('"')[1]
分解bash case
语句的自然方法是将其拆分为“;;”。然后,我们识别info
部分(chunk.strip().startswith('info)')
)并选择该部分中的第一个引用字符串(chunk.split('"')[1]
)。