首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从shell脚本向python程序插入参数

从shell脚本向python程序插入参数
EN

Stack Overflow用户
提问于 2016-05-23 21:54:06
回答 2查看 113关注 0票数 0

我需要从shell脚本执行我的python程序,以便我的python程序中的print命令可以从另一个程序中读取。shell脚本:

代码语言:javascript
运行
复制
#!/bin/bash

if [ $# -lt 1 ] || [ $# -gt 2 ];then
    echo "Usage: $0 APK <duration in seconds>"
    exit 1;
fi

printf "$(python '/root/Desktop/DroidBox_4.1.1/scripts/droidbox.py' $1 $2 -c 'import sys; exec sys.stdin.read()')"

我的python程序应该得到参数$1和$2,但是它没有将这些参数识别为参数,而是将-c和后面的命令作为参数。

这样的答案:在我的另一个项目中获取流程输入流对我来说不起作用。唯一有效的方法是使用-c选项和命令'exec sys.stdin.read()‘。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-05-23 22:09:44

就像你写的那样,它应该工作得很好。下面是我得到的精简版本:

(bash) test.sh脚本:

代码语言:javascript
运行
复制
#!/bin/bash    
python /tmp/test.py $1 $2

(python) test.py脚本:

代码语言:javascript
运行
复制
import sys
print "in python"
print sys.argv

最后是一个shell session

代码语言:javascript
运行
复制
smassey@hacklabs:/tmp $ ./test.sh hello world
in python
['/tmp/test.py', 'hello', 'world']

正如您所看到的,bash脚本调用python脚本,该脚本将值打印到stdout,因此它们与定向到stdout的任何其他值一样公开

代码语言:javascript
运行
复制
smassey@hacklabs:/tmp $ ./test.sh hello world | grep python | tr 'a-z' 'A-Z'
IN PYTHON
票数 1
EN

Stack Overflow用户

发布于 2016-05-23 22:34:16

argparse模块也非常有用。这允许您向您的程序添加自定义标志(从用户的角度来看,这也使其使用起来更方便)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37392926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档