【问题标题】:python - subprocess command and output (linux command)python - 子进程命令和输出(linux命令)
【发布时间】:2021-12-10 00:15:57
【问题描述】:

我有一个命令如下,它给了我linux系统中的cpu、内存和磁盘大小。我想把它嵌入到python代码中并得到输出。

但不知何故,我无法正确使用转义字符并获得输出。您对此使用的最实用的方法是什么?

echo "CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h /store | awk '/\// {print $(NF-1)}'`"

(我们可以忽略回声。)

谢谢。

【问题讨论】:

    标签: python linux subprocess output


    【解决方案1】:

    尝试将 r 放在命令字符串之前,如下所示:

    r"CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h /store | awk '/\// {print $(NF-1)}'`"
    

    【讨论】:

    • 我试过了,但对我不起作用; ``` a = subprocess.check_output(r"CPU LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'% RAM free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }' HDD df -h /store | awk '/\// {print $(NF-1)}'", shell=True) ```
    • 不是因为命令中也有双引号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2018-12-17
    • 2015-12-19
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多