Tentar ecoar uma string terá vários espaços para um terminal, mas precisará de uma string como está

0

tentando fazer o seguinte:

echo "- - 830 "FTL  MFG" -"

o "FTL MFG" deve ser deixado como uma entrada.

o que estou fazendo de errado?

    
por Starsky 16.01.2018 / 17:41

2 respostas

4

echo "- - 830 "FTL  MFG" -"
     ^^^^^^^^^^        ^^^^ quoted
               ^^^^^^^^ not quoted

echo vê dois argumentos: - - 830 FTL e MFG - e imprime-os com um espaço entre eles. Se você quiser uma saída com aspas, você precisa escapar delas ou usar aspas simples para cercar a string:

echo "- - 830 \"FTL  MFG\" -"
echo '- - 830 "FTL  MFG" -'
    
por 16.01.2018 / 17:53
2

Aspas duplas " são delimitadores de string (e as strings funcionam de maneira diferente nas shells a partir do que fazem na maioria das linguagens de programação). Comparar:

$ for a in "- - "830 FTL MFG" -"; do echo "$a"; done
- - 830
FTL
MFG -

Você desejará escapar das aspas duplas (para que sejam interpretadas como aspas duplas literais) ou para delimitar sua string com ' .

%  echo "- - 830 \"FTL MFG\" -"
- - 830 "FTL MFG" -
% echo '- - 830 "FTL MFG" -'
- - 830 "FTL MFG" -
    
por 16.01.2018 / 17:55

Tags