python - 当涉及“$$”时,如何获得“subprocess.check_output()”的输出?
问题描述
我想得到ps -p $$ -oargs=
通过python执行的字符串输出。
当我尝试这个时:
subprocess.check_output("ps -p $$ -oargs=", shell=True)
我得到“ps -p 9017 -oargs=”,但是当我ps -p $$ -oargs=
直接在 shell 中尝试时,我得到“-bash”。如何通过 python 获取“-bash”?
解决方案
这正是您要求它做的事情,过滤ps
以仅使用运行它的 shell 的 PID 输出有关进程的信息(这就是$$
意思)。
如果您想要有关 Python 会话本身的信息,则需要传递 Python 进程本身的 PID,例如(删除shell=True
包装,因为这里不需要它$$
):
subprocess.check_output(["ps", "-p", str(os.getpid()), "-oargs="])
确保import os
在文件的顶部,以便您可以访问os.getpid
.
推荐阅读
- c# - 如何在 c# ASP.NET 中传递这个值?
- angular - Angular 6:无法在 Google pagespeed 洞察中提高移动性能
- google-sheets - 如何在不混淆的情况下将行转换为联系人详细信息列?(谷歌表格)
- java - 从 Java 调用带有表类型参数的 OracleDB 过程——DB 总是接收空值而不是值
- ssl - 如何在带有 TLS 的 FTP 的 Windows 10 命令提示符中构造 CURL FTPS 命令
- asp.net - Azure SignalR 服务的 SignalR 脚本标记
- javascript - 节点/快递应用程序中错误处理的正确方法是什么?
- laravel - ErrorException (E_NOTICE) 试图获取非对象的属性“名称”
- python - 迭代快速排序步骤 - 乌龟中的可视化
- python - tkinter 所有小部件在彼此之上