echoé um shell embutido no Bash e dash ( /bin/sh). Se você executa a echopartir da linha de comando, está usando o Bash built-in, se está executando seu shell script com sho Dash embutido.
A versão de traço de echonão conhece a -eopção, mas apenas produz qualquer coisa literalmente sem nenhum tratamento especial para \sequências.
Use o Bash para executar seu script de shell ou use em /bin/echovez de echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
Para evitar os problemas com diferentes versões, echovocê pode querer usar printf. Ao contrário de echoprintfsempre interpreta \seqüências, mas não adiciona automaticamente um avanço de linha no final, portanto você deve anexá \n-lo ao final, se desejar.
Como algumas versões printfdo não entendem, \evocê deve usar \033:
Funciona. /bin/echocom dash ( /bin/sh) e bash; echocom bash ou ./tes.shambos funcionam corretamente. O código abaixo funciona bashapenas com . se [$ UID -ne 0]; then echo "Não usuário root" else echo "Usuário Root" fi
Qingfeng
1
Não o execute sh test.sh, ele imprime o texto na cor branca, como você disse. Depois de criar o script, torne-o executável executando,
sudo chmod +x /path/test.sh
Execute o script com sudo, like sudo ./test.shou ./test.shambos funcionarão.
Eu corro chmod a+x test.sh, ele imprime o texto na cor de leitura. Qual é a diferença. ./test.shdeve ser igual ao sh test.shque aconteceu no linux?
21414 Qingfeng #
você não teve que usar sh durante a execução do script, você criou o roteiro com intérprete festa #! /bin/bashassim que você tem que usarbash test.sh
Avinash Raj
E também .significa diretório atual.
precisa
Se a resposta ajudou de alguma forma ./test.sh, por favor, marque como resposta, caso a sua dúvida não tenha sido solucionada, por favor, poste novamente ..
precisa
1
Isso precisa que o comando correto no formato correto seja tudo.
Declaração de eco adequada: echo "Hello World!"
Declaração de eco adequada com cor: echo "\e[1;31mHello World!\e[0m"
A adição de cores a um script do bash é uma daquelas coisas muito simples, mas facilmente confusas. =)
Este site pode ajudar a explicar tudo claramente para você. Costumo usá-lo como referência porque, quem consegue se lembrar de todos os códigos de cores corretos, certo? ri muito
/bin/echo
com dash (/bin/sh
) e bash;echo
com bash ou./tes.sh
ambos funcionam corretamente. O código abaixo funcionabash
apenas com . se [$ UID -ne 0]; then echo "Não usuário root" else echo "Usuário Root" fiNão o execute
sh test.sh
, ele imprime o texto na cor branca, como você disse. Depois de criar o script, torne-o executável executando,Execute o script com
sudo
, likesudo ./test.sh
ou./test.sh
ambos funcionarão.Ou
Execute o script com
bash
,fonte
chmod a+x test.sh
, ele imprime o texto na cor de leitura. Qual é a diferença../test.sh
deve ser igual aosh test.sh
que aconteceu no linux?#! /bin/bash
assim que você tem que usarbash test.sh
.
significa diretório atual../test.sh
, por favor, marque como resposta, caso a sua dúvida não tenha sido solucionada, por favor, poste novamente.
.Isso precisa que o comando correto no formato correto seja tudo.
Declaração de eco adequada:
echo "Hello World!"
Declaração de eco adequada com cor:
echo "\e[1;31mHello World!\e[0m"
A adição de cores a um script do bash é uma daquelas coisas muito simples, mas facilmente confusas. =)
Este site pode ajudar a explicar tudo claramente para você. Costumo usá-lo como referência porque, quem consegue se lembrar de todos os códigos de cores corretos, certo? ri muito
fonte