A variável de ambiente PATH indica que os comandos estão localizados.
Portanto, no seu caso, como " jdksjkdk
" não foi encontrado no $PATH
, ele gera um erro no descritor de arquivo STDERR
e, portanto, você está obtendo stderr.readiness()
como Comando não encontrado
Explanation: There are 3 standard file descriptors, every running program in linux opens the following file descriptors
- STDIN (0) => for standard input
- STDOUT(1) => for standard output
- STDERR (2) => for standard error
Portanto, quando o comando não foi encontrado, o erro foi gravado em
STDERR
( arquivo desciptor = > 2), se foi bem sucedido, então a saída teria foi escrito paraSTDOUT
(descritor de arquivo = > 1). Desde que paramiko é lendo o resultado deSTDERR
e nãoSTDOUT
, é assim que é verificando se o erro não é produzido