Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

diferença entre sh e bash

O nome do meu script é filtrando-apache.sh

Quando executo: $bash filtrando-apache.sh Ele vai normal, funcionando com todas as mensagens de erro ou sucesso. Porém se tento executar: $sh filtrando-apache.sh Não funciona, dando sempre a mensagem " [[ not found Formato não é válido" Com o sh não deveria funcionar?

Obrigado! Abraços

4 respostas

Olá, Luiz. Tudo bem?

Pode me dizer qual é a distribuição Linux que você está utilizando? Além disso você adicionou o #!/bin/bash no início do script?

Oi Vitor! Tudo certinho e vc?

#!/bin/bash -- > Adicionei simc!

Subi uma instância do ubuntu pela vagrant ( ubuntu/xenial64) Ubuntu 16.04.7 LTS

Seria isso?

solução!

Oi, Luiz. Tudo certo aqui também.

O sh é uma Linguagem para Shell que implementa uma especificação chamada POSIX. O/bin/sh não é um shell de fato, é um link para alguma implementação dessa especificação que está no seu sistema. No caso de distribuições baseadas no Debian (como o Ubuntu), o /bin/sh é um link para o dash que é o shell mais básico no sistema.

A sintaxe de [[ não pertence ao dash, mas sim ao bash, por isso que o erro acontece. Quando você usa sh filtrando-apache.sh, está sendo usado o interpretador do dash, por isso não funciona. Então o que você deve fazer é usar o bash filtrando-apache.sh ou, quando colocado o#!/bin/bash, apenas ./filtrando-apache.sh.

Espero ter ajudado.

Perfeito Vitor! Obrigado

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