Paramiko 如何分离输出和错误消息?

Paramiko 如何分离输出和错误消息?

如果我jdksjdkd使用 paramiko 在终端从一台机器到另一台机器执行,我会stderr.readlines()得到 Command not found.

答案1

PATH 环境变量指示命令所在的位置。因此,在您的情况下,由于jdksjkdk在 中找不到“ ” ,因此它会在文件描述符$PATH上引发错误,因此您将得到“Command not found”STDERRstderr.readiness()

解释:有3个标准文件描述符,Linux中每个正在运行的程序都会打开以下文件描述符

  1. STDIN (0) => 用于标准输入
  2. STDOUT(1) => 用于标准输出
  3. STDERR (2) => 标准错误

因此,当找不到该命令时,错误将被写入STDERR(文件描述符=> 2),如果成功,则输出将被写入STDOUT(文件描述符=> 1)。由于 paramiko 正在读取结果 fromSTDERR和 not STDOUT,这就是它验证它是错误而不是输出的方式

相关内容