Comando se comportando de maneira diferente quando salvo em um arquivo * .sh

2

Eu não consegui encontrar uma resposta para esta pergunta, então talvez um de vocês possa me ajudar:)

Eu escrevi alguns scripts de shell para me ajudar a automatizar as coisas e eles funcionam. No entanto, o que não funciona é adicionar texto colorido ao meu echo s. Ele funciona ao digitar o comando diretamente no meu terminal, mas ele não funciona quando eu coloco o comando em um arquivo * .sh:

Conteúdodefoo.sh:

echo"\n\e[1;37mHello World\e[0m\n"

Alguém pode me explicar qual é o problema? Ah, e estou usando zsh, se isso importa.

Agradecemos antecipadamente:)

Atualizar

Aparentemente, funciona quando o conteúdo de foo.sh é:

echo $'\n\e[1;37mHello World\e[0m\n'

Encontrei a resposta no link , que encontrei graças à resposta do netmonk. Portanto, aceitarei sua resposta como a correta. Obrigado amigo:)

    
por sb. 09.10.2015 / 11:08

2 respostas

1

Sim, é importante! O comando echo pode ser diferente. Um comando interno dentro de um programa shell ou um comando separado e independente.

Dessa forma, você pode considerar que o eco que você usa dentro do zsh não é o mesmo que você chama no script de shell SH! :)

você deve adicionar -e ao seu eco dentro do seu roteiro!

    
por 09.10.2015 / 11:12
3

Quando você salva o arquivo sh , provavelmente você preencheu tudo com a linha de declaração "shell", assim:

#!/bin/sh

# the code

Se você deseja obter os mesmos resultados de quando você está testando em seu shell, altere esta linha para uma representando seu shell.

    
por 09.10.2015 / 11:24