要实现既能捕获shell命令输出,又能在终端实时显示的功能,可以使用以下方法:
$()
或````命令将要执行的shell命令嵌入到脚本中,并将结果输出到一个临时文件中。然后使用tail -f
命令实时监听该临时文件的变化并在终端中显示。示例脚本如下:#!/bin/bash
command="your_shell_command"
tmp_file="/path/to/temp/file"
# 执行shell命令并将输出重定向到临时文件
$command > $tmp_file
# 实时显示临时文件内容
tail -f $tmp_file
import subprocess
import sys
def execute_command(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
output = process.stdout.readline()
if process.poll() is not None:
break
if output:
print(output.strip().decode(sys.stdout.encoding))
if process.returncode == 0:
return True
else:
return False
command = "your_shell_command"
execute_command(command)
这样,无论使用哪种方式,都能实现在终端实时显示shell命令输出的效果。
领取专属 10元无门槛券
手把手带您无忧上云