Jak używać tutaj dokumentu w programowaniu bash

Jak używać tutaj dokumentu w programowaniu bash
Blok kodu lub tekstu, który można przekierować do skryptu poleceń lub programu interaktywnego, jest tutaj nazywany dokumentem lub heredoc. Różne rodzaje języków scenariuszy, takie jak Bash, SH, CSH, KSH itp., może przyjmować wprowadzanie tekstu bezpośrednio za pomocą dokumentu tutaj bez użycia żadnego pliku tekstowego. Więc gdy koder potrzebuje mniejszej ilości danych tekstowych, to użycie kodu i danych w tym samym pliku jest lepszą opcją i można go łatwo wykonać za pomocą tutaj dokumentu w skrypcie. Bez języka scenariuszy tutaj dokument może być również używany w różnych językach wysokiego poziomu, takich jak PHP, Perl itp. Jak można użyć tutaj udokument w skrypcie Bash, jest pokazany w tym samouczku.

Aby użyć tu-dokumentu w dowolnym skrypcie Bash, musisz użyć symbolu << 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.

Komenda << HeredocDelimiter


Heredocdelimiter

Przykład-1: użycie prostego tekstu heredoc

Gdy Heredoc jest używany w dowolnym skrypcie, konieczne jest zachowanie tej samej nazwy dla ogranicznika początkowego i końcowego. Załóżmy, że polecenie jest 'kot- A delimiter Heredoc jest DODAJ TEKST. Utwórz nazwany plik skryptu Bash heredoc1.grzmotnąć z następującym kodem, aby sprawdzić proste użycie Heredoc.

#!/bin/bash
kot <Ten tekst jest
Dodano tutaj dokument
DODAJ TEKST

Uruchom następujące polecenie, aby wykonać skrypt.

$ bash heredoc1.grzmotnąć

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu skryptu.

Przykład-2: użycie heredoc z symbolem „-'

Użycie Heredoc „-” Symbol do stłumienia dowolnej przestrzeni zakładki z każdego wiersza tekstu Heredoc. W poniższym przykładzie, patka przestrzeń jest dodawana na początku każdej linii i '-' Symbol jest używany przed początkowym ogranicznikiem. Kiedy skrypt wykonuje, wszystkie przestrzenie zakładki są pominięte od początku każdego wiersza, ale nie tworzy żadnego wpływu na normalną przestrzeń. Utwórz plik bash o nazwie heredoc2.grzmotnąć z następującym skryptem do przetestowania funkcji '-'.

#!/bin/bash
kot <<-ADDTEXT2
Linia-1: tutaj dokument jest pomocny w wydrukowaniu krótkiego tekstu
Linia-2: Tutaj dokument można użyć do formatowania tekstu
Linia-3: tutaj dokument może wydrukować zmienne w tekście
Linia-4: tutaj dokument z „-” usuwa przestrzeń zakładki z linii
AddText2

Uruchom następujące polecenie, aby wykonać skrypt.

$ bash heredoc2.cii

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu skryptu. patka Przestrzeń została usunięta z treści Heredoc.

Przykład-3: użycie zmiennej w tekście Heredoc

Utwórz nowy skrypt bash z następującym kodem. Tutaj dwie wymienione zmienne Zacznij i koniec są zadeklarowane. Te zmienne są używane w tekście Heredoc. Jeśli użyjesz znaku cytatu na początkowym ograniczeniu HEREDOC, wartość zmiennej nie będzie wydrukować w konsoli.

#!/bin/bash
start = „Witajcie wszyscy”
end = "Powodzenia"
kot <$ start
Witamy na stronie blogu Linux.
$ end
AddText3

Uruchom następujące polecenie, aby wykonać skrypt.

$ bash heredoc3.cii

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu skryptu. Dane wyjściowe pokazuje zawartość Heredoc z wartością zmiennych.

Przykład-4: Utwórz nowy plik bash za pomocą Herdoc

W poprzednich przykładach pokazano, jak używać Heredoc w dowolnym skrypcie Bash. Możesz także utworzyć nowy plik bash za pomocą Heredoc, pokazany w następnej części tego samouczka. Utwórz nowy plik bash o nazwie heredoc4.cii z następującym kodem. Tutaj, Newfile Zmienna jest deklarowana do ustawienia nazwy pliku nowego skryptu Bash, który zostanie utworzony po wykonaniu heredoc4.cii plik. Po wykonaniu nowy plik bash o nazwie wyjście.cii zostanie stworzony.

#!/bin/bash
NEWFILE = wyjście.cii
(
kot < $NewFile

Uruchom następujące polecenia, aby przetestować powyższy skrypt. Pierwsze polecenie wykona główny plik skryptu. Drugie polecenie wyświetli zawartość nowo utworzonego pliku. Trzecie polecenie uruchomi nowo utworzony plik Bash.

$ bash heredoc4.cii
$ CAT Wyjście.cii
Wyjście $ bash.cii

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu skryptu.

Przykład-5: Korzystanie z funkcji z Heredoc

Możesz przekazać wartości wejściowe do zmiennych dowolnej funkcji skryptu BASH z treści Heredoc. Utwórz kolejny nowy plik bash o nazwie heredoc5.cii Aby przetestować, w jaki sposób można użyć funkcji z Heredoc. Dodaj następujący kod do pliku. Funkcja wymieniona Bookinfo jest zadeklarowany w skrypcie, który przyjmie dane z tekstu Heredoc. Sześć zmiennych jest zadeklarowanych w funkcji o nazwie ISBN, nazwa BookName, Authorname, Edition, Publication and Cena. Aby właściwie ustawić wartość zmiennych, musisz zachować kolejność wartości w sekcji Heredoc zgodnie ze zmiennymi zadeklarowanymi w funkcji. Po ustawieniu danych w zmiennych funkcji wartość cenowa jest obliczana na podstawie 10% rabatu i wydrukowana wartości wszystkich zmiennych w konsoli.

#!/bin/bash
#Declare Funkcja, która odzyska dane, dokumentuj
Bookinfo ()

Przeczytaj ISBN
Przeczytaj nazwę BookName
Przeczytaj nazwa autora
czytaj wydanie
Przeczytaj publikację
Przeczytaj cenę

# Zadeklaruj tutaj część dokumentującą, aby wysłać dane do funkcji
Bookinfo <ISBN-78633567809
Łatwy laravel 5
W. Jason Gilmore
9. edycja
Learpub
100
AddText5
# Wydrukuj wartość zmiennych funkcji po obliczeniu wartości cenowej z 10% zniżką
((cena = cena $-cena $*10/100))
echo „$ BookName”
echo „$ authorname”
echo „$ edition, $ publikacja”
echo „$” $ cena

Uruchom następujące polecenie, aby wykonać skrypt.

$ heredoc5.grzmotnąć

Wyjście:

Tutaj wartość zmiennej cenowej została ustawiona na 100. Po ustaleniu 10% rabatu na wartość cenową wartość została ustawiona na 90. Po wykonaniu w terminalu pojawi się następujące dane wyjściowe.

Przykład-6: Wykonaj polecenia wewnątrz Heredoc

Utwórz plik bash o nazwie heredoc6.grzmotnąć z następującym skryptem do wykonania „data”, „Pwd”, I 'kim jestem„polecenie z”sudo' Komenda.

#!/bin/bash
# Dodaj trzy polecenia wewnątrz zawartości Heredoc z poleceniem „sudo”
sudo -s <data
PWD
kim jestem
KOMENDA

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Dane wyjściowe trzech poleceń wydrukowano na wyjściu.

Przykład-7: Użycie HEREDOC do zapisywania wielu wierszy w pliku

Utwórz plik bash o nazwie heredoc6.grzmotnąć z następującym skryptem, aby dodać wiele wierszy w nazwanym pliku tekstowym Temp.tekst i wydrukuj treść pliku. Trzy wiersze zostaną dodane do pliku tekstowego po wykonaniu kodu.

#!/bin/bash
: „Ten skrypt zapisze wiele wierszy
do pliku tekstowego
'
# Wpisz wiele wierszy w pliku za pomocą Heredoc
Cat> 'Temp.tekst' <Bash to popularny język skryptowy.
Wiele zadań administracyjnych można łatwo wykonać
Za pomocą skryptu Bash.
FileContent
# Wydrukuj zawartość pliku
CAT TEMP.tekst

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Wyjście pokazuje, że trzy linie są dodawane w Temp.tekst plik.

Przykład-8: Używanie heredoc z rurą do wyszukiwania i wymiany zawartości

Wejście Heredoc można również ruszyć. Utwórz plik bash z następującym skryptem, aby wyszukać i zastąpić konkretną postać z treści Heredoc. Pierwszy heredoc wydrukuje oryginalny tekst, a drugi heredoc wydrukuje wymieniony tekst. Polecenie „SED” zostało tutaj użyte do zastąpienia wszystkich wystąpień postaci ”A' przez 'A'.

#!/bin/bash
Echo „Oryginalna treść to:”
kot <<'ORIGINAL'
Bash to język skontaktowy
HTML to język znaczników
JavaScript to język skryptowy po stronie klienta
ORYGINALNY
# Dodaj nową linię
Echo
echo „treść po wymianie„ a ”przez„ a ”:”
kot <<'REPLACE' | sed 's/a/A/g'
Bash to język skontaktowy
HTML to język znaczników
JavaScript to język skryptowy po stronie klienta
ZASTĘPOWAĆ

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. W wyjściu wszystkie „A” zostały zastąpione przez „A”.

Przykład-9: Użycie Heredoc do komentowania bloku linii

Jednym z ważnych zastosowań Heredoc jest komentowanie wielu wierszy skryptu Bash. Utwórz plik bash z następującym skryptem, aby znaleźć rok to rok skokowy, czy nie. Cel skryptu został opisany przez wiele linii za pomocą Heredoc.

#!/bin/bash
<Ten skrypt służy do odkrycia
Rok to rok skokowy, czy nie
Rok SKAP
MultIlin_comment
# Weź 4-cyfrową wartość roku od użytkownika
echo -n „Wprowadź wartość czterech cyfrowych:”
Przeczytaj Yr
# Sprawdź, czy wartość roku jest skokiem lub nie rokiem
jeśli [$ (($ yr%400)) -EQ 0]; Następnie
echo "$ yr to rok skokowy."
elif [$ (($ yr%100)) -EQ 0]; Następnie
echo "$ yr nie jest rokiem skoku."
elif [$ (($ yr%4)) -eq 0]; Następnie
echo "$ yr to rok skokowy."
w przeciwnym razie
echo "$ yr nie jest rokiem skoku."
fi

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Poniższa wydajność pokazuje, że 2008 to rok skokowy, a 2021 nie jest rokiem skoku.

Wniosek:

Różne zastosowania dokumentu Heredoc pokazano w tym samouczku, używając wielu przykładów. Może być używany z różnymi typami poleceń powłoki i dodawaniem komentarzy wieloletnich w skrypcie Bash. Zastosowania Heredoc zostaną usunięte dla użytkowników Bash po ćwiczeniu przykładów tego samouczka.