Apa itu "Keluar 2" dari status pekerjaan latar belakang jadi?


12

Saya memiliki latihan untuk memasukkan file beberapa data (* conf dari beberapa direktori) dan perlu melakukan ini di latar belakang. Saya melakukannya dan saya bertanya-tanya apa arti dari pesan keluaran:

[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &

Enter naik baris ini:

[1] 2533

apa artinya? Setelah Enter lainnya, pesan lain muncul

[A@localhost tests]$
[1]+  Exit 2                  ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1

Apa artinya? Apa itu "Keluar 2"?

Masukkan hasil cek - sepertinya semuanya OK.

[A@localhost tests]$
[A@localhost tests]$ ls -l test1_6_conf.txt
-rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt
[A@localhost tests]$ 

Saya menggunakan CentOS 6.4, Gnome Terminal Emulator.

Jawaban:


18

Apa artinya? Apa itu "Keluar 2"?

Ini adalah status keluar dari ls. Lihat man for ls:

   Exit status:
       0      if OK,

       1      if minor problems (e.g., cannot access subdirectory),

       2      if serious trouble (e.g., cannot access command-line argument).

Saya kira alasannya adalah bahwa Anda memiliki banyak file * conf di /etcdan tidak ada * conf file di / usr. Bahkan ls -ld /usr/*conf;akan memiliki efek yang sama.

Jadi Jika saya lakukan di komputer saya lsuntuk file yang ada:

ls main.cpp; echo $?
main.cpp
0

Dan untuk file yang tidak ada:

ls main.cppp; echo $?
ls: cannot access main.cppp: No such file or directory
2

Atau sebagai proses latar belakang ls untuk file yang tidak ada:

>ls main.cppp &
[1] 26880
ls: cannot access main.cppp: No such file or directory
[1]+  Exit 2                  ls main.cppp

Hai! Terima kasih. Sekarang saya sudah menyadari bahwa ls /usr/*confkembali 2karena tidak ada nama file yang mengandung "conf".
— ALZ

2
@ALZ, perhatikan bahwa ia mengembalikan 2 karena tidak dapat menemukan file yang dipanggil /usr/*conf. Dan bashmemberikan nama file itu karena tidak dapat menemukan file yang cocok dengan pola itu. Kerang yang lebih baik seperti zshakan mengembalikan kesalahan "tidak cocok" dan tidak berjalan lssama sekali.
— Stéphane Chazelas

1

Itu berarti perintah telah selesai dengan status keluar berbeda dari 0 (berhasil).

Cobalah untuk tidak menaruh (&) di bagian akhir, untuk melihat apa yang terjadi.

Jika perintah itu membutuhkan banyak waktu saat berjalan, Anda dapat memeriksanya dengan:

lnx #> pekerjaan -l

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.