Pythonでos.system("whoami")
と入力すると、ルートとしてroot
が返されますが、変数x = os.system("whoami")
に割り当てようとすると、xの値が0に設定されます。 。 なぜ ? (:
os.system()
は、(エンコードされた)プロセス終了値を返します。 _0
_は成功を意味します:
Unixでは、戻り値は
wait()
に指定された形式でエンコードされたプロセスの終了ステータスです。 POSIXはCのsystem()関数の戻り値の意味を指定しないため、Python関数の戻り値はシステムに依存します。
表示される出力はstdout
に書き込まれるため、コンソールまたは端末であり、Python呼び出し元に返されません。
stdout
をキャプチャする場合は、代わりに subprocess.check_output()
を使用します。
_x = subprocess.check_output(['whoami'])
_
os.system( 'command')は16ビットの数値を返します。左から最初の8ビット(lsb)はosがコマンドを閉じるために使用する信号について話し、次の8ビットはコマンドの戻りコードについて話します。
Pythonのos.system()の戻り値は? の詳細については、私の答えを参照してください