Abdulvakaf K Asked: 2018-06-27 21:55:42 +0800 CST2018-06-27 21:55:42 +0800 CST 2018-06-27 21:55:42 +0800 CST Paramiko 如何分离输出和错误消息? 772 如果我jdksjdkd使用 paramiko 在终端从一台机器执行到另一台机器,我得到stderr.readlines()的是 Command not found. linux 1 个回答 Voted Best Answer Arushix 2018-06-27T22:21:03+08:002018-06-27T22:21:03+08:00 PATH 环境变量指示命令所在的位置。因此,在您的情况下,由于jdksjkdk在 中找不到“” ,因此它会在文件描述符$PATH上引发错误,因此您会得到Command not foundSTDERRstderr.readiness() 解释:有3个标准文件描述符,linux中每个运行的程序都会打开以下文件描述符 STDIN (0) => 用于标准输入 STDOUT(1) => 用于标准输出 STDERR (2) => 用于标准错误 因此,当找不到命令时,错误被写入STDERR(file deciptor => 2),如果成功,则输出将被写入STDOUT(file descriptor => 1)。STDERR由于 paramiko 是从而不是读取结果STDOUT,这就是它如何验证它是错误而不是输出
PATH 环境变量指示命令所在的位置。因此,在您的情况下,由于
jdksjkdk
在 中找不到“” ,因此它会在文件描述符$PATH
上引发错误,因此您会得到Command not foundSTDERR
stderr.readiness()