2
respostas

[Dúvida] execução de script

Boa noite, seguindo a aula, na VB realizei o seguinte comando

criei um arquivo chamado hello e o movi para a bin

sudo  mv hello usr/bin
anottsu@juliano-pc:/usr/bin$ ls -l | grep hello
-rw-rw-r-- 1 anottsu anottsu       17 Sep 26 21:04 hello

porem ao executa-lo a permissão foi negada

anottsu@juliano-pc:/usr/bin$ hello
-bash: /usr/bin/hello: Permission denied

depois eu dei permissão de execução

anottsu@juliano-pc:/usr/bin$ chmod +x hello
anottsu@juliano-pc:/usr/bin$ hello

e obtive a seguinte msg:

/usr/bin/hello: line 1: 18058 Killed                  hello my friends
bash: warning: shell level (1000) too high, resetting to 1

**Quando eu utilizei o sudo para mover não era para executar automaticamente?

A msg bash warning acredito que foi porque criei o arquivo usando o echo " hello my friends" > hello depois entrei no vi e coloquei echo " hello my friends" e salvei o arquivo. A msg sumiu mas não sei o por que

2 respostas

Olá, Juliano! Como vai?

Primeiramente, é importante esclarecer que o comando sudo mv hello usr/bin apenas move o arquivo para o diretório /usr/bin, mas não altera as permissões do arquivo. Por isso, você precisou utilizar o comando chmod +x hello para conceder permissão de execução ao arquivo.

Quanto à mensagem de erro que você recebeu, isso ocorre porque o conteúdo do seu script está causando um loop infinito. Quando você executa o comando hello, ele chama a si mesmo, causando um loop. Para evitar isso, você precisa alterar o conteúdo do seu script. Em vez de hello my friends, tente usar echo "hello my friends". Isso fará com que o script imprima a mensagem "hello my friends" em vez de tentar executar o comando hello novamente.

A mensagem bash: warning: shell level (1000) too high, resetting to 1 é exibida quando o nível de aninhamento de subshells (processos bash filhos de um processo bash pai) excede o limite, que por padrão é 1000. Isso é uma proteção para prevenir loops infinitos. No seu caso, o script hello estava chamando a si mesmo repetidamente, causando esse excesso de subshells.

Espero ter ajudado e bons estudos!

Boa noite Renan, obrigado pelo feedback. Você saberia explicar o por que o arquivo entrou em loop? Desde já agradeço

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