Este guia rápido mostrará métodos de definição de variáveis de cordas multilinas usando personagens de escape e heredoc.
Personagens Bash Escape
Bash, como a maioria das linguagens de programação, fornece a capacidade de usar caracteres de fuga. Os personagens de fuga nos permitem invocar uma nova interpretação das seqüências de personagens. Embora Bash tenha vários personagens de fuga, precisamos apenas nos preocupar com \ n (personagem de nova linha).
Por exemplo, se tivermos uma corda multilina em um script, podemos usar o caractere \ n para criar uma nova linha sempre que necessário.
Um exemplo desse caso de uso é:
#!/BIN/BASH
str = “Esta é uma string \ n-e outra \ n-e outra \ n-e a última”
echo -e $ str
Executando o script acima imprime as cordas em uma nova linha onde o caractere \ n existe.
Heredoc
O método acima funciona bem para texto simples de linha. No entanto, se precisarmos imprimir um texto com outros caracteres especiais, reações e citações, ele se torna desnecessariamente complexo. Para resolver esse problema, podemos usar o heredoc.
O que é um heredoc?
Um heredoc é um bloco de código de uso especial que diz ao shell que leia a entrada da fonte atual até encontrar uma linha contendo um delimitador.
A sintaxe para Heredoc em Bash é:
COMANDO << DELIMITER
..
Bloco Heredoc
..
..
Delimitador
Delimitadores em um heredoc podem ser qualquer corda. No entanto, as cordas mais comuns são EOF, EOM ou fim.
Depois que o shell encontra o delimitador, ele substitui todas as variáveis, comandos e caracteres especiais e depois passa as informações dentro do bloco heredoc para o comando principal.
Você pode incluir caracteres especiais, cordas regulares, variáveis e outros comandos de shell no bloco heredoc.
Certifique -se de encerrar o bloco Heredoc com o delimitador. Não adicione nenhum espaço em branco antes do delimitador.
Corda multilina usando heredoc
Suponha que você tenha a seguinte sequência:
Dentro de um script bash, podemos criar uma varível e passar a string acima para CAT, como mostrado abaixo:
#!/BIN/BASH
String = $ (CAT << EOF
Documento
Eof
)
eco $ string
Depois de executar o script acima, você verá uma saída A:
Como você pode ver, podemos imprimir toda a string, incluindo todos os personagens especiais.
Conclusão
Para este guia, discutimos como definir e usar uma corda multilina em um script Bash. No entanto, há mais no heredoc do que discutido aqui. Considere o seguinte recurso para saber mais.