Jag har en övning för att lägga in data i en fil (* conf från vissa kataloger) och måste göra detta i bakgrunden. Jag gjorde det och jag undrar vad som är meningen med utgående meddelanden:
[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &
Enter stiger den här raden:
[1] 2533
vad betyder det? Efter andra Enter visas ytterligare meddelanden
[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1
Vad betyder det? Vad är ”Exit 2”?
Ange ett kontrollresultat – verkar vara helt 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]$
Jag använder CentOS 6.4, Gnome Terminal Emulator.
Svar
Vad betyder det? Vad är ”Exit 2”?
Det är exitstatus för ls
. Se man för 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).
Jag antar att anledningen är att du har många * conf-filer i /etc
och inga * conf-filer i / usr. Faktum är att ls -ld /usr/*conf;
skulle ha haft samma effekt.
Så om jag gör det på min dator ls
för en befintlig fil:
ls main.cpp; echo $? main.cpp 0
Och för en fil som inte finns:
ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2
Eller som bakgrundsprocess ls för aa-fil som inte finns:
>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp
Kommentarer
Svar
Det genomsnittliga kommandot är klart med utgångsstatus annorlunda än 0 (framgång).
Försök att inte placera (&) , för att se vad som händer.
Om det kommandot tar mycket när det körs kan du kontrollera det med:
lnx #> jobb -l
ls /usr/*conf
returnerar2
eftersom det inte finns några filnamn som innehåller " conf "./usr/*conf
. Ochbash
skickar det filnamnet eftersom det ' inte hittar filer som matchar det mönstret. Bättre skal somzsh
skulle ha returnerat ett " ingen matchning " och inte körls
alls.