Come utilizzare il documento qui nella programmazione bash

Come utilizzare il documento qui nella programmazione bash
Un blocco di codice o testo che può essere reindirizzato allo script di comando o al programma interattivo viene chiamato qui documento o heredoc. Diversi tipi di linguaggi di scripting come Bash, SH, CSH, KSH, ecc., può prendere l'input di testo direttamente utilizzando qui documento senza utilizzare alcun file di testo. Pertanto, quando il programmatore necessita di una minore quantità di dati di testo, quindi l'utilizzo di codice e dati nello stesso file è l'opzione migliore e può essere eseguita facilmente utilizzando qui il documento nello script. Senza un linguaggio di scripting, qui il documento può essere utilizzato anche in vari linguaggi di alto livello come PHP, Perl, ecc. Come puoi usare qui documentazione nello script bash è mostrato in questo tutorial.

Per utilizzare qui il documento in qualsiasi script bash, devi usare il simbolo << 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
..
..
Hedocdelimiter

Esempio-1: uso del semplice testo Heredoc

Quando l'eredoc viene utilizzato in qualsiasi script, è necessario mantenere lo stesso nome per il delimitatore di avvio e fine. Supponiamo che il comando sia 'gatto'E il delimitatore Heredoc è AGGIUNGI TESTO. Crea un file di script bash denominato hedoc1.Bash con il seguente codice per verificare l'uso semplice di Heredoc.

#!/Bin/Bash
gatto <Questo testo è
Aggiunto da qui documento
AGGIUNGI TESTO

Esegui il comando seguente per eseguire lo script.

$ Bash Heredoc1.Bash

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-2: uso di heredoc con '-' simbolo

Heredoc usa IL '-' simbolo per sopprimere qualsiasi spazio di scheda da ogni riga di testo Heredoc. Nel seguente esempio, scheda lo spazio viene aggiunto all'inizio di ogni riga e il '-' il simbolo viene utilizzato prima del delimitatore iniziale. Quando lo script viene eseguito, tutti gli spazi delle schede vengono omessi dall'inizio di ogni riga, ma non crea alcun effetto sullo spazio normale. Crea un file bash denominato hedoc2.Bash con il seguente script per testare la funzione di '-'.

#!/Bin/Bash
gatto <<-ADDTEXT2
Riga-1: qui il documento è utile per stampare il testo corto
Riga 2: qui il documento può essere utilizzato per formattare il testo
Line-3: qui il documento può stampare variabili all'interno del testo
Linea-4: qui documento con '-' Rimuove lo spazio della scheda dalla linea
AddText2

Esegui il comando seguente per eseguire lo script.

$ Bash Heredoc2.sh

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script. IL scheda lo spazio è stato rimosso dal contenuto di hedoc.

Esempio-3: uso della variabile all'interno del testo Heredoc

Crea un nuovo script bash con il seguente codice. Qui, due variabili chiamate Inizia e fine sono dichiarati. Queste variabili sono usate all'interno del testo Heredoc. Se si utilizza un marchio di preventivo nel delimitatore iniziale di Heredoc, il valore della variabile non verrà stampato nella console.

#!/Bin/Bash
start = "ciao tutti"
end = "buona fortuna"
gatto <$ inizio
Benvenuti nel sito del blog di Linux.
$ fine
AddText3

Esegui il comando seguente per eseguire lo script.

$ Bash Heredoc3.sh

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script. L'output mostra il contenuto di Heredoc con il valore delle variabili.

Esempio-4: crea un nuovo file bash usando Herdoc

Negli esempi precedenti, come è possibile utilizzare HEREDOC in qualsiasi script bash. Puoi anche creare un nuovo file bash utilizzando HEREDOC, mostrato nella parte successiva di questo tutorial. Crea un nuovo file bash denominato Heredoc4.sh con il seguente codice. Qui, il Newfile La variabile è dichiarata per impostare il nome del file del nuovo script bash, che verrà creato dopo l'esecuzione di Heredoc4.sh file. Dopo l'esecuzione, un nuovo file bash denominato produzione.sh verrà creato.

#!/Bin/Bash
Newfile = output.sh
(
gatto < $NewFile

Esegui i seguenti comandi per testare lo script sopra. Il primo comando eseguirà il file di script principale. Il secondo comando visualizzerà il contenuto del file appena creato. Il terzo comando eseguirà il file bash appena creato.

$ Bash Heredoc4.sh
Output di $ Cat.sh
$ bash output.sh

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script.

Esempio-5: usando la funzione con heredoc

È possibile passare i valori di input alle variabili di qualsiasi funzione dello script bash dal contenuto HEREDOC. Crea un altro nuovo file bash denominato Heredoc5.sh Per testare come la funzione può essere usata con heredoc. Aggiungi il seguente codice al file. Una funzione denominata Bookinfo è dichiarato nella sceneggiatura, che prenderà i dati dal testo Heredoc. Sei variabili sono dichiarate nella funzione denominata ISBN, Bookname, Authorname, Edition, Publication e Price. Per impostare correttamente il valore delle variabili, è necessario mantenere l'ordine dei valori nella sezione HEREDOC in base alle variabili dichiarate nella funzione. Dopo aver impostato i dati nelle variabili della funzione, il valore del prezzo viene calcolato con uno sconto del 10% e stampato i valori di tutte le variabili nella console.

#!/Bin/Bash
#Declare la funzione che recupererà i dati da qui documento
Bookinfo ()

Leggi ISBN
Leggi Bookname
Leggi Authorname
Leggi l'edizione
Leggi la pubblicazione
Leggi il prezzo

# Dichiara qui la parte del documento per inviare dati nella funzione
Bookinfo <ISBN-78633567809
Facile Laravel 5
W. Jason Gilmore
9a edizione
Learpub
100
AddText5
# Stampa il valore delle variabili della funzione dopo aver calcolato il valore dei prezzi con sconto del 10%
((Price = $ Price- $ Price*10/100))
echo "$ bookname"
Echo "$ Authorname"
Echo "$ Edition, $ Publication"
Echo "$" $ prezzo

Esegui il comando seguente per eseguire lo script.

$ heredoc5.Bash

Produzione:

Qui, il valore della variabile di prezzo è stato impostato su 100. Dopo aver impostato uno sconto del 10% sul valore del prezzo, il valore è stato impostato su 90. Dopo l'esecuzione, il seguente output apparirà nel terminale.

Esempio-6: eseguire comandi all'interno dell'eredoc

Crea un file bash denominato Heredoc6.Bash con il seguente script da eseguire 'Date', 'PWD', E 'chi sono'comando con'sudo'Comando.

#!/Bin/Bash
# Aggiungi tre comandi all'interno del contenuto HEREDOC con il comando "sudo"
sudo -s <data
PWD
chi sono
COMANDO

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. L'output dei tre comandi è stata stampata nell'output.

Esempio-7: Uso di Heredoc per scrivere più righe in un file

Crea un file bash denominato Heredoc6.Bash con il seguente script per aggiungere più righe nel file di testo denominato temp.TXT e stampare il contenuto del file. Tre righe verranno aggiunte al file di testo dopo aver eseguito il codice.

#!/Bin/Bash
: 'Questo script scriverà più righe
in un file di testo
'
# Scrivi più righe in un file usando hedoc
Cat> 'temp.TXT' <Bash è un linguaggio di scripting popolare.
Molte attività amministrative possono essere eseguite facilmente
Usando Bash Script.
Filecontent
# Stampa il contenuto del file
Temp. Cat.TXT

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. L'output mostra che tre righe vengono aggiunte temp.TXT file.

Esempio-8: usando Heredoc con pipe per cercare e sostituire il contenuto

L'input Heredoc può anche essere convocato. Crea un file bash con il seguente script per cercare e sostituire un particolare carattere dal contenuto HEREDOC. Il primo Heredoc stamperà il testo originale e il secondo Heredoc stamperà il testo sostituito. Il comando "SED" è stato usato qui per sostituire tutte le istanze del personaggio "UN' di 'UN'.

#!/Bin/Bash
echo "Il contenuto originale è:"
gatto <<'ORIGINAL'
Bash è un linguaggio di script shell
HTML è una lingua di markup
JavaScript è un linguaggio di scripting sul lato client
ORIGINALE
# Aggiungi una nuova linea
eco
Echo "Il contenuto dopo aver sostituito" A "di" A ":"
gatto <<'REPLACE' | sed 's/a/A/g'
Bash è un linguaggio di script shell
HTML è una lingua di markup
JavaScript è un linguaggio di scripting sul lato client
SOSTITUIRE

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Nell'output, tutti "A" sono stati sostituiti da "A".

Esempio-9: Uso di Heredoc per commentare il blocco delle righe

Uno degli utili importanti di Heredoc è commentare più righe della sceneggiatura bash. Crea un file bash con il seguente script per trovare un anno è un anno di salto o no. Lo scopo della sceneggiatura è stato descritto da commenti multiline.

#!/Bin/Bash
<Questo script viene utilizzato per scoprirlo
Un anno è un anno di salto o no a
anno bisestile
multiline_comment
# Prendi il valore di 4 cifre dall'utente
echo -n "Inserisci il valore di quattro cifre:"
Leggi Yr
# Controlla che il valore dell'anno preso è un salto o no un anno di salto
if [$ (($ YR%400)) -EQ 0]; Poi
echo "$ yr è un anno di salto."
Elif [$ (($ YR%100)) -EQ 0]; Poi
echo "$ yr non è un anno di salto."
Elif [$ (($ YR%4)) -EQ 0]; Poi
echo "$ yr è un anno di salto."
altro
echo "$ yr non è un anno di salto."
fi

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Il seguente output mostra che il 2008 è un anno di salto e il 2021 non è un anno di salto.

Conclusione:

I vari usi del documento HEREDOC hanno mostrato in questo tutorial utilizzando più esempi. Può essere utilizzato con diversi tipi di comandi con shell e aggiungere commenti multi-line nello script bash. Gli usi dell'eredoc saranno cancellati per gli utenti di Bash dopo aver praticato gli esempi di questo tutorial.