如何使用 python 获取在 shell 中执行的命令和参数

How to get the command & arguments that was executed in shell with python

我是 运行 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-namelog-stream-name,即“某物”和“我的日志流”(在本例中)。我不确定如何做到这一点。

我试过使用 sys.argv 但它 returns 我在 python 命令中传递的参数,即 ['-c'] 而不是 aws 命令。

管道不是这样工作的。它只是将命令的输出发送到下一个命令。您可以将 log-group-namelog-stream-name 设置为环境变量

export LGN=something
...

然后在 python 中使用 os.environ["LGN"] 访问它...类似于此

export LGN="my-log-group"; <your code here> | python3 -c "import os; print(os.environ['LGN'])"