O que o 'echo $?' e os comandos 'ls $ File 2 & 1'?

0

Alguém pode me ajudar a entender isso?

echo $? - Eu sei que gera uma variável de algum tipo ...

e isso

ls >> $File 2>&1 ---- alguém pode explicar o que isso faz?

    
por rathdowney 03.12.2015 / 13:47

3 respostas

4

1. Use explicahell.com :

ou

2. Pesquise a página man do seu shell

fazendo:

    $ man sh #replace sh with another shell if you need to

Você pode procurar um estilo Ctrl-F de padrão pressionando / , digitando o padrão de pesquisa e pressionando enter.

Resumo:

echo: display a line of text

$?: expands to the exit status of the most recently executed command/pipeline

ls: list directory contents

>>: append output

2>&1: redirecting stderr (fd=2) to stdout (fd=1) (which is "$File" in append mode in this context)

    
por 03.12.2015 / 13:53
5

echo $? retornará o código de erro do comando anterior.

tente

false ; echo $?
true ; echo $?

ls >> $File 2>&1 , redirecionará ( >> ) a saída de ls para o final de um arquivo cujo nome está em $File , 2>&1 também redirecionará o erro, se houver.

  • >> é o acréscimo ao arquivo.
por 03.12.2015 / 13:52
2

O que mais afunda nessa questão é um problema relacionado aos operadores de redirecionamento.

ls >> $File 2>&1

ls stands for list contents of current directory

>> means append to end of file

$FILE means there is a variable declared as FILE having some value, could be the path to a file.

2>&1 means redirecting both stdin and sterr to the target file, in this case $FILE.

Espero que isso ajude. :)

    
por 03.12.2015 / 18:59