次のLinuxコマンドの文字列出力を取得したい
systemctl show node_exporter |grep LoadState| awk '{split($0,a,"="); print a[2]}'
で試しました
import subprocess
output = subprocess.check_output("systemctl show node_exporter |grep LoadState| awk '{split($0,a,"="); print a[2]}'", shell=True)
ただし、出力は、output = subprocess.check_output( "systemctl show node_exporter | grep LoadState | awk '{split($ 0、a、" = "); print a [2]}'"、shell = True)SyntaxError:keyword can式ではありません
上手、
まず、この関数は、単一の文字列ではなく、文字列のリストをコマンドとして受け取ります。例えば:
"ls -a -l" - wrong
["ls", "-a", "-l"] - good
第二に。Linuxコマンドが非常に複雑であるか、多くの行が含まれている場合は、command.shなどの個別のbashファイルを作成し、そこにLinuxコマンドを配置して、Pythonから次のコマンドを実行するのが理にかなっています。
import subprocess
output = subprocess.check_output(["./command.sh"], shell=True)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加