Como usar aqui o documento na programação do BASH

Como usar aqui o documento na programação do BASH
Um bloco de código ou texto que pode ser redirecionado para o script de comando ou programa interativo é chamado aqui documento ou heredoc. Diferentes tipos de linguagens de script como Bash, SH, CSH, KSH, etc., pode levar a entrada de texto diretamente usando o documento aqui sem usar nenhum arquivo de texto. Portanto, quando o codificador precisa de menos quantidade de dados de texto, o uso de código e dados no mesmo arquivo é a melhor opção e pode ser feito facilmente usando o documento aqui no script. Sem linguagem de script, aqui o documento também pode ser usado em vários idiomas de alto nível, como PHP, Perl, etc. Como você pode usar o documento aqui no script Bash é mostrado neste tutorial.

Para usar o documento aqui em qualquer script bash, você deve usar o símbolo << followed by any delimiting identifier after any bash command and close the HereDoc by using the same delimiting identifier at the end of the text. The syntax of writing HereDoc is shown below.

Comando << HeredocDelimiter
..
..
Heredocdelimiter

Exemplo 1: Uso de texto heredoc simples

Quando o heredoc é usado em qualquer script, é necessário manter o mesmo nome para o delimitador inicial e final. Suponha que o comando seja 'gato'E o delimitador heredoc é ADICIONE TEXTO. Crie um arquivo de script bash chamado heredoc1.Bash com o código a seguir para verificar o uso simples de heredoc.

#!/BIN/BASH
gato <Este texto é
Adicionado por documento aqui
ADICIONE TEXTO

Execute o seguinte comando para executar o script.

$ Bash Heredoc1.Bash

Saída:

A saída a seguir aparecerá após a execução do script.

Exemplo-2: Uso de Heredoc com '-' símbolo

Usa heredoc o '-' Símbolo para suprimir qualquer espaço de guia de cada linha de texto heredoc. No exemplo seguinte, aba o espaço é adicionado no início de cada linha e o '-' O símbolo é usado antes do delimitador inicial. Quando o script é executado, todos os espaços de guias são omitidos a partir do início de cada linha, mas não cria nenhum efeito no espaço normal. Crie um arquivo bash chamado heredoc2.Bash com o script a seguir para testar a função de '-'.

#!/BIN/BASH
gato <<-ADDTEXT2
Linha 1: aqui o documento é útil para imprimir texto curto
Linha 2: aqui o documento pode ser usado para formatar o texto
Linha 3: aqui o documento pode imprimir variáveis ​​no texto
Linha 4: aqui o documento com '-' remove o espaço da guia da linha
AddText2

Execute o seguinte comando para executar o script.

$ Bash Heredoc2.sh

Saída:

A saída a seguir aparecerá após a execução do script. O aba O espaço foi removido do conteúdo heredoc.

Exemplo 3: Uso de variável no texto heredoc

Crie um novo script Bash com o seguinte código. Aqui, duas variáveis ​​nomeadas começar e terminar são declarados. Essas variáveis ​​são usadas no texto heredoc. Se você usar uma marca de cotação no delimitador inicial do heredoc, o valor da variável não imprimirá no console.

#!/BIN/BASH
start = "Olá a todos"
end = "boa sorte"
gato <$ Start
Bem -vindo ao Linux Blog Site.
$ final
AddText3

Execute o seguinte comando para executar o script.

$ Bash Heredoc3.sh

Saída:

A saída a seguir aparecerá após a execução do script. A saída mostra o conteúdo heredoc com o valor das variáveis.

Exemplo-4: Crie um novo arquivo Bash usando Herdoc

Nos exemplos anteriores, como você pode usar o heredoc em qualquer script bash são mostrados. Você também pode criar um novo arquivo Bash usando Heredoc, mostrado na próxima parte deste tutorial. Crie um novo arquivo Bash nomeado heredoc4.sh Com o seguinte código. Aqui, o newfile A variável é declarada para definir o nome do arquivo do novo script bash, que será criado após a execução de heredoc4.sh arquivo. Após a execução, um novo arquivo bash nomeado saída.sh Será criado.

#!/BIN/BASH
NewFile = saída.sh
(
gato < $NewFile

Execute os seguintes comandos para testar o script acima. O primeiro comando executará o arquivo de script principal. O segundo comando exibirá o conteúdo do arquivo recém -criado. O terceiro comando executará o arquivo bash recém -criado.

$ Bash Heredoc4.sh
$ CAT Output.sh
$ BASH Saída.sh

Saída:

A saída a seguir aparecerá após a execução do script.

Exemplo 5: Usando a função com heredoc

Você pode passar os valores de entrada para as variáveis ​​de qualquer função do script Bash do Heredoc Content. Crie outro novo arquivo Bash nomeado heredoc5.sh Para testar como a função pode ser usada com heredoc. Adicione o seguinte código ao arquivo. Uma função chamada Bookinfo é declarado no script, que receberá dados do heredoc texto. Seis variáveis ​​são declaradas na função chamada ISBN, BookName, Authorname, edição, publicação e preço. Para definir o valor das variáveis ​​corretamente, você deve manter a ordem dos valores na seção heredoc de acordo com as variáveis ​​declaradas na função. Depois de definir os dados nas variáveis ​​de função, o valor do preço é calculado por um desconto de 10% e imprimiu os valores de todas as variáveis ​​no console.

#!/BIN/BASH
#Declare a função que recuperará dados daqui documental
Bookinfo ()

Leia o ISBN
Leia o bookname
Leia Authorname
Leia Edição
Leia a publicação
Leia o preço

# Declare aqui a parte do documento para enviar dados para a função
Bookinfo <ISBN-78633567809
Fácil Laravel 5
C. Jason Gilmore
9ª edição
Learpub
100
AddText5
# Imprima o valor das variáveis ​​de função após calcular o valor do preço com 10% de desconto
((Preço = $ preço- $ preço*10/100))
eco "$ bookname"
eco "$ autorname"
eco "$ edição, $ publicação"
eco "$" $ preço

Execute o seguinte comando para executar o script.

$ heredoc5.Bash

Saída:

Aqui, o valor da variável de preço foi definido como 100. Depois de definir um desconto de 10% no valor do preço, o valor foi definido como 90. Após a execução, a seguinte saída aparecerá no terminal.

Exemplo 6: Execute os comandos dentro do heredoc

Crie um arquivo bash chamado heredoc6.Bash com o seguinte script para executar 'data', 'pwd', e 'Quem sou eu'Comando com'sudoComando.

#!/BIN/BASH
# Adicione três comandos dentro do conteúdo heredoc com o comando 'sudo'
sudo -s <data
PWD
Quem sou eu
COMANDO

Saída:

A saída a seguir aparecerá após a execução do script acima. A saída dos três comandos foi impressa na saída.

Exemplo 7: Uso do Heredoc para escrever várias linhas em um arquivo

Crie um arquivo bash chamado heredoc6.Bash com o script a seguir para adicionar várias linhas no arquivo de texto nomeado Temp.TXT e imprima o conteúdo do arquivo. Três linhas serão adicionadas ao arquivo de texto após a execução do código.

#!/BIN/BASH
: 'Este script escreverá várias linhas
em um arquivo de texto
'
# Escreva várias linhas em um arquivo usando heredoc
gato> 'temperatura.TXT' <Bash é uma linguagem de script popular.
Muitas tarefas administrativas podem ser realizadas facilmente
Usando o script Bash.
FileContent
# Imprima o conteúdo do arquivo
Temp de gato.TXT

Saída:

A saída a seguir aparecerá após a execução do script acima. A saída mostra que três linhas são adicionadas no Temp.TXT arquivo.

Exemplo 8: Usando Heredoc com tubo para pesquisar e substituir o conteúdo

A entrada heredoc também pode ser canalizada. Crie um arquivo bash com o seguinte script para pesquisar e substituir um personagem específico do conteúdo heredoc. O primeiro heredoc imprimirá o texto original, e o segundo heredoc imprimirá o texto substituído. O comando 'sed' foi usado aqui para substituir todas as instâncias do personagem 'a' por 'A'.

#!/BIN/BASH
eco "O conteúdo original é:"
gato <<'ORIGINAL'
Bash é uma linguagem de script de concha
HTML é uma linguagem de marcação
JavaScript é uma linguagem de script do lado do cliente
ORIGINAL
# Adicione uma nova linha
eco
eco "o conteúdo depois de substituir 'a' por 'a':"
gato <<'REPLACE' | sed 's/a/A/g'
Bash é uma linguagem de script de concha
HTML é uma linguagem de marcação
JavaScript é uma linguagem de script do lado do cliente
SUBSTITUIR

Saída:

A saída a seguir aparecerá após a execução do script acima. Na saída, todos 'a' foram substituídos por 'a'.

Exemplo 9: Uso do Heredoc para comentar o bloco de linhas

Um dos usos importantes do heredoc é comentar em várias linhas do script Bash. Crie um arquivo bash com o seguinte script para encontrar um ano é um ano bissexto ou não. O objetivo do script foi descrito por comentários de várias linhas usando heredoc.

#!/BIN/BASH
<Este script é usado para descobrir
Um ano é um ano bissenso ou não um
ano bissexto
Multiline_Comment
# Tome o valor do ano de 4 dígitos do usuário
eco -n "Digite o valor do ano de quatro dígitos:"
Leia YR
# Verifique se o valor do ano levado é um salto ou não um ano bissexto
se [$ (($ ano%400) -eq 0]; então
eco "$ ano é um ano bissexto."
Elif [$ (($ ano%100) -eq 0]; então
eco "$ ano não é um ano bissenso."
Elif [$ (($ ano%4) -eq 0]; então
eco "$ ano é um ano bissexto."
outro
eco "$ ano não é um ano bissenso."
fi

Saída:

A saída a seguir aparecerá após a execução do script acima. A produção a seguir mostra que 2008 é um ano bissenso e 2021 não é um ano bissexto.

Conclusão:

Os vários usos do documento Heredoc foram mostrados neste tutorial usando vários exemplos. Ele pode ser usado com diferentes tipos de comandos de shell e adicionar comentários de várias linhas no script Bash. Os usos do heredoc serão limpos para os usuários do Bash depois de praticar os exemplos deste tutorial.