如果我jdksjdkd
使用 paramiko 在终端从一台机器到另一台机器执行,我会stderr.readlines()
得到 Command not found
.
答案1
PATH 环境变量指示命令所在的位置。因此,在您的情况下,由于jdksjkdk
在 中找不到“ ” ,因此它会在文件描述符$PATH
上引发错误,因此您将得到“Command not found”STDERR
stderr.readiness()
解释:有3个标准文件描述符,Linux中每个正在运行的程序都会打开以下文件描述符
- STDIN (0) => 用于标准输入
- STDOUT(1) => 用于标准输出
- STDERR (2) => 标准错误
因此,当找不到该命令时,错误将被写入
STDERR
(文件描述符=> 2),如果成功,则输出将被写入STDOUT
(文件描述符=> 1)。由于 paramiko 正在读取结果 fromSTDERR
和 notSTDOUT
,这就是它验证它是错误而不是输出的方式