GNU/Linux >> Belajar Linux >  >> Linux

Mengembalikan nilai x =os.system(..)

os.system('command') mengembalikan angka 16 bit, yang mana 8 bit pertama dari kiri (lsb) berbicara tentang sinyal yang digunakan oleh os untuk menutup perintah, 8 bit berikutnya berbicara tentang mengembalikan kode perintah.

Rujuk jawaban saya untuk detail lebih lanjut di Apa nilai pengembalian os.system() dengan Python?


os.system() mengembalikan nilai keluar proses (yang disandikan). 0 berarti sukses:

Di Unix, nilai yang dikembalikan adalah status keluar dari proses yang disandikan dalam format yang ditentukan untuk wait() . Perhatikan bahwa POSIX tidak menentukan arti dari nilai yang dikembalikan dari fungsi C system(), sehingga nilai yang dikembalikan dari fungsi Python bergantung pada sistem.

Keluaran yang Anda lihat ditulis ke stdout , jadi konsol atau terminal Anda, dan tidak dikembalikan ke pemanggil Python.

Jika Anda ingin menangkap stdout , gunakan subprocess.check_output() sebagai gantinya:

x = subprocess.check_output(['whoami'])

Linux
  1. Log Sistem NG

  2. Akankah System.currentTimeMillis selalu mengembalikan nilai >=panggilan sebelumnya?

  3. pthread_exit vs. kembali

  1. Nilai Maksimum Id Proses?

  2. mengembalikan nilai dari skrip python ke skrip Shell

  3. Bisakah eBPF mengubah nilai pengembalian atau parameter syscall?

  1. Bagaimana cara mendapatkan nilai pengembalian dari PROSES ANAK?

  2. Apa yang dikembalikan malloc(0)?

  3. Mengapa fungsi utama tanpa pernyataan pengembalian mengembalikan nilai 12?