Tenho um exercício para colocar alguns dados em um arquivo (* conf de alguns diretórios) e preciso fazer isso em segundo plano. Eu fiz isso e estou me perguntando qual é o significado das mensagens de saída:
[A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 &
Enter aumenta esta linha:
[1] 2533
o que isso significa? Depois de outro Enter, outra mensagem aparece
[A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1
O que isso significa? O que é “Saída 2”?
Insira os resultados da verificação – parece estar tudo bem.
[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]$
Estou usando o CentOS 6.4, Emulador de terminal Gnome.
Resposta
O que isso significa? O que é “Saída 2”?
É o status de saída de ls
. Veja 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).
Acho que o motivo é que você tem muitos arquivos * conf em /etc
e nenhum arquivo * conf em / usr. Na verdade, ls -ld /usr/*conf;
teria o mesmo efeito.
Então, se eu fizer no meu computador ls
para um existente arquivo:
ls main.cpp; echo $? main.cpp 0
E para um arquivo que não existe:
ls main.cppp; echo $? ls: cannot access main.cppp: No such file or directory 2
Ou como um processo em segundo plano ls para um arquivo que não existe:
>ls main.cppp & [1] 26880 ls: cannot access main.cppp: No such file or directory [1]+ Exit 2 ls main.cppp
Comentários
Resposta
Isso significa que o comando terminou com status de saída diferente de 0 (sucesso).
Tente não colocar (&) no final , para ver o que acontece.
Se esse comando demorar muito para ser executado, você pode verificá-lo com:
lnx #> jobs -l
ls /usr/*conf
return2
já que não há nomes de arquivo contendo " conf "./usr/*conf
. Ebash
está passando esse nome de arquivo porque não pode ' encontrar arquivos que correspondam a esse padrão. Shell melhores comozsh
teriam retornado um erro " nenhuma correspondência " e não executadols
em tudo.