如何解决如何获取使用Python在Shell中执行的命令和参数
我正在aws-cli中运行命令以获取日志,并且需要使用此命令的输出在python中执行一些操作。
我正在做这样的事情:
aws logs filter-log-events --log-group-name "something" --log-stream-names my-log-stream --filter-pattern "status=FAIL" | python3 -c "import sys,json; print(json.load(sys.stdin))"
上面的命令获取aws日志并运行python代码段以打印返回的json。
我想访问python代码段中的log-group-name
和log-stream-name
,即“ something”和“ my-log-stream”(在这种情况下)。我不确定该怎么做。
我尝试使用sys.argv
,但它会返回python命令中传递的参数,即['-c']
,而不是aws命令。
解决方法
这不是管道的工作方式。它只是将命令的输出发送到下一个命令。您可以将log-group-name
和log-stream-name
设置为环境变量
export LGN=something
...
然后使用os.environ["LGN"]
在python中访问它...类似于
export LGN="my-log-group"; <your code here> | python3 -c "import os; print(os.environ['LGN'])"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。