O que o filename.txt faz no shell script?

2

Eu estava revendo um código de shell e encontrei este comando escrito entre outro código de shell

>filename.txt 

Eu não sei o que esse comando faz, então testei na minha área de trabalho. Eu fiz um script de shell e eu escrevi este comando dentro do meu script de shell e quando eu corri isso, descobri que ele não faz nada. O que este > myfile.txt faz ??

    
por ProgBeginner 22.03.2017 / 19:10

4 respostas

4

Como você escreveu com nada precedendo o canal de redirecionamento > :

>filename.txt 

é literalmente canal de redirecionamento nada em filename.txt . Isso é comumente feito para limpar / apagar o conteúdo de um arquivo de texto. Se filename.txt ainda não existir, será criado.

    
por 22.03.2017 / 19:37
2

O comando > myfile.txt apenas criará um arquivo ou limpará o conteúdo do arquivo, se houver.

Este comando também é para atribuir algo a um arquivo .txt, se houver um comando antes. Por exemplo, você deseja criar um arquivo com o conteúdo de uma pasta para poder fazer ls -1 > myfile.txt . Isso criará um arquivo com os nomes dos seus arquivos e diretórios por linha.

Você também pode usá-lo como um arquivo de log do seu script, então, em vez de mostrar a saída na tela, este comando salva a saída em um arquivo.

    
por 22.03.2017 / 19:17
1

script.sh > file.txt sobrescreve o arquivo com a saída do script. Considerando que script.sh >> file.txt acrescenta texto ao final do arquivo.

Você pode redirecionar qualquer saída de qualquer programa na linha de comando para um arquivo como este. No entanto, isso só redireciona STDOUT, se você quiser erros no arquivo, também, use algo como script.sh > file.txt 2>&1 . Isso envia STDERR para STDOUT, que está sendo gravado em um arquivo.

    
por 22.03.2017 / 19:23
1

Não há comando como filename.txt. É apenas um arquivo de texto chamado nome de arquivo.

Como você pediu no título

What does >filename.txt does in shell script

">" é usado para redirecionar a saída do comando para o arquivo de texto. por exemplo, se você executar o comando abaixo no terminal

ifconfig > filename.txt

a saída do comando ifconfig não será exibida no terminal. mas um novo arquivo será criado em seu diretório de trabalho ou sobrescreverá se o mesmo arquivo estiver presente lá. Você pode ler a saída do comando a partir do arquivo filename.txt.

    
por 22.03.2017 / 19:18