Jeg har en øvelse for å legge inn noen data (* conf fra noen kataloger) i en fil og trenger å gjøre dette i bakgrunnen. Jeg gjorde det og lurer på hva som er meningen med utgangsmeldinger:
[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &
Enter stiger denne raden:
[1] 2533
hva betyr det? Etter andre Enter vises andre meldinger
[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1
Hva betyr det? Hva er «Exit 2»?
Skriv inn en kontrollresultat – ser ut til å være 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]$
Jeg bruker CentOS 6.4, Gnome Terminal Emulator.
Svar
Hva betyr det? Hva er «Avslutt 2»?
Det er utgangsstatus for ls
. Se mann 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).
Jeg antar at årsaken er at du har mange * conf-filer i /etc
og ingen * conf-filer i / usr. Faktisk ville ls -ld /usr/*conf;
hatt samme effekt.
Så hvis jeg gjør det på datamaskinen min ls
for en eksisterende fil:
ls main.cpp; echo $? main.cpp 0
Og for en fil som ikke eksisterer:
ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2
Eller som bakgrunnsprosess ls for aa-fil som ikke eksisterer:
>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp
Kommentarer
Svar
Den gjennomsnittlige kommandoen er ferdig med annen utgangsstatus enn 0 (suksess).
Prøv å ikke sette (&) på slutten , for å se hva som skjer.
Hvis den kommandoen tar mye når du kjører, kan du sjekke den med:
lnx #> jobber -l
ls /usr/*conf
returnerer2
siden det ikke er noen filnavn som inneholder " conf "./usr/*conf
. Ogbash
sender det filnavnet fordi det ' ikke finner filer som samsvarer med det mønsteret. Bedre skjell somzsh
ville ha returnert en " ingen samsvar " feil og ikke kjørels
i det hele tatt.