bash shell script error

3

Eu pensei que não há sintaxe para echo palavra-chave, ou seja, podemos usar " ou ' ou nenhuma citação.

Eu tentei todos os três tipos no shell bash

Eu recebi o erro. Por que isso está acontecendo?

{#Azar's first shell script
echo "Hi Azar, Welcome to the new world of technology for you"
echo 'default script bash'
echo keep going don't stop always}

erro:

 sh afs.sh
 Hi Azar, Welcome to the new world of technology for you
 default script bash
 afs.sh: 6: afs.sh: Syntax error: Unterminated quoted string
    
por azardin 26.02.2017 / 05:16

3 respostas

10

Seu script falha quando você está tentando

echo keep going don't stop always

A razão é contada no erro de sintaxe

Unterminated quoted string

Como você usa ' em don't , o Bash shell continua procurando outro ' que fecha sua sentença. Como nunca é encontrado, o erro de sintaxe é impresso.

Neste caso, você precisa usar aspas duplas ("") como esta

echo "keep going don't stop always"

Recomenda-se usar aspas ao imprimir algo em geral. Entre aspas duplas, você pode usar ' e, individualmente, " , se necessário.

    
por jiipeezz 26.02.2017 / 05:34
7

Além de a resposta fornecida por jiipeezz para essa pergunta, você também pode usar barra invertida para escapar de caracteres únicos.

echo keep going don\'t stop always

Para mais detalhes leia isto .

    
por Samuel Santana 26.02.2017 / 06:13
0

Seu script parece errôneo. Eu tentei o mesmo, mas tenho um erro de comando não encontrado.

line 3: $'{#Azars first shell script\necho "Hi Azar, Welcome to the new world of technology for you"\necho default': command not found

Este script funcionou sem erros como esperado. Escape a citação que você usou em "não" --- "don \ 't". Dessa forma, você não precisa colocar aspas duplas em torno da instrução echo. Mas é uma boa prática colocá-las entre aspas duplas.

#Azar's first shell script
echo "Hi Azar, Welcome to the new world of technology for you"
echo 'default script bash' 
echo keep going don\'t stop always

Saída deste script.

user@system:~/samplecode$ bash samplescript.sh
Hi Azar, Welcome to the new world of technology for you
default script bash
keep going don't stop always

Script feliz.

    
por Kaustubh Desai 26.02.2017 / 09:42