2
respostas

O código só roda quando estou com a pasta /script aberta, fora dela não funciona

Configuração arquvo .bashrc

PATH=$PATH:/home/matheus/script

Configuração arquivo contapalavras wc -w *.txt |grep total

Permissões do contapalavras -rwxr -xr -x

Quando testo o arquivo io funciona normalmente.

OBS: Não existe a função de anexo?? seria bem mais fácil explicar meu problema com prints !!!

2 respostas

Ola,

Existe o botão Inserir código, assim vôce consegue colocar seu código aqui e ele formata pra vôce, mas vamos ao problema....

Ao executar o script, sera considerado os arquivos .txt do diretório atual, independente da pasta aonde esteja salvo o script. Ex: executando dentro da pasta /home/matheus/script, como tem os arquivos .txt do curso la, ira funcionar corretamente. Executando o script em /home, por exemplo, caso nao tenha algum arquivo .txt em /home, não terá o que contar.Espero ter ajudado.

A questão tem a ver com a combinação dos conceitos de PATH e globbing.

Veja que o comando no seu shell script contapalavras não indica explicitamente que deve contar as palavras (wc -w) no diretório ~/scripts.

Desta forma, apesar do diretório ~/scripts estar no $PATH e poder ser executado diretamente, o shell irá substituir *.txt por todos os arquivos que terminem em .txt apenas no diretório corrente ($PWD) e se existirem.

Uma solução para o seu caso, supondo que você queira buscar apenas e sempre no diretório ~/scripts, seria colocar ele fixo no shell script da seguinte forma: wc -w ~/scripts/*.txt | grep total.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software