What is a heredoc? Here Documents Explained | Linux Terminal 201 - HakTip 179
Tartalomjegyzék:
A héja parancsfájlok írásakor olyan helyzetbe kerülhet, amikor át kell adnia egy soros szöveget vagy kódot egy interaktív parancsnak, például
tee
,
cat
vagy
sftp
.
A Bash-ban és más olyan kagylókban, mint a Zsh, a Here dokumentum (Heredoc) egy olyan átirányítás, amely lehetővé teszi, hogy több bemeneti sort átadjon egy parancsnak.
A HereDoc írásának szintaxisa a következőképpen alakul:
<< 'DELIMITER' HERE-DOCUMENT DELIMITER
- Az első sor egy opcionális paranccsal kezdődik, amelyet a speciális átirányítási operátor
<<és a körülhatároló azonosító követ.- Bármely karakterláncot használhat határoló azonosítóként, a leggyakrabban használt EOF vagy END.Ha a határoló azonosító idézetlen, a héj minden változót, parancsot és speciális karaktert felvált, mielőtt átadja a here-document sorokat a parancsnak. mínusz jel az átirányítási operátor számára
<<-, az összes vezető fül karakterét figyelmen kívül hagyja. Ez lehetővé teszi a behúzás használatát, ha a here-dokumentumokat shell szkriptekbe írja. A vezető szóköz karakterek használata nem engedélyezett, csak a fül.
A here-document blokk tartalmazhat karakterláncokat, változókat, parancsokat és bármilyen más típusú inputot. Az utolsó sor a körülhatároló azonosítóval ér véget. A határoló előtti fehér hely nem megengedett. - Bármely karakterláncot használhat határoló azonosítóként, a leggyakrabban használt EOF vagy END.Ha a határoló azonosító idézetlen, a héj minden változót, parancsot és speciális karaktert felvált, mielőtt átadja a here-document sorokat a parancsnak. mínusz jel az átirányítási operátor számára
Alapvető Heredoc példák
Ebben a szakaszban néhány alapvető példát mutatunk be a heredoc használatára.
A Heredoc-et leggyakrabban a macska paranccsal kombinálva használják.
A következő példában két olyan szövegsort adunk át, amely tartalmaz egy környezeti változót és egy parancsot a
cat
egy itt használt dokumentum segítségével.
cat << EOF The current working directory is: $PWD You are logged in as: $(whoami) EOF
Amint az alábbi kimenetből látható, mind a változó, mind a parancs kimenetét helyettesítik:
The current working directory is: /home/linuxize You are logged in as: linuxize
Lássuk, mi fog történni, ha egy elválasztó vagy dupla idézőjelbe vonjuk be a határolót.
cat <<- "EOF" The current working directory is: $PWD You are logged in as: $(whoami) EOF
Megfigyelheti, hogy amikor a határoló idéződik, a paraméter nem bővül, és a parancs cseréjét a héj nem végzi el.
The current working directory is: $PWD You are logged in as: $(whoami)
if true; then cat <<- EOF Line with a leading tab. EOF fi
Line with a leading tab.
Ahelyett, hogy a kimenetet a képernyőn jelenítené meg, átirányíthatja egy fájlba a
>
,
>>
operátorok segítségével.
cat << EOF > file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Ha a file.txt nem létezik, akkor létrejön. A
>
használatakor a fájl felülíródik, míg a
>>
a kimenetet csatolja a fájlhoz.
A heredoc bemenet vezetékes is. A következő példában a
sed
parancs lecseréli az
l
karakter összes példányát
e
:
cat <<'EOF' | sed 's/l/e/g' Hello World EOF
Heeeo Wored
A vezetékes adatok fájlba írása:
cat <<'EOF' | sed 's/l/e/g' > file.txt Hello World EOF
A Heredoc használata az SSH-val
A Heredoc használata az egyik legkényelmesebb és legegyszerűbb módszer a parancsok végrehajtására távoli rendszeren SSH-n keresztül.
Nem idézőjelző használatakor ügyeljen arra, hogy elkerülje az összes változót, parancsot és speciális karaktert, különben lokálisan interpolálódnak:
ssh -T [email protected] << EOF echo "The current local working directory is: $PWD" echo "The current remote working directory is: \$PWD" EOF
The current local working directory is: /home/linuxize The current remote working directory is: /home/user
Érdemes beállítani egy SSH-alapú hitelesítést, és jelszó megadása nélkül csatlakoznia kell a Linux-kiszolgálókhoz.
Következtetés
Ebben az útmutatóban megtudta, mi a
heredoc
és hogyan kell azt használni a shell parancsfájljaiban.
Hogyan futtassuk a Bash-et az Ubuntu-n a Windows 10-en?
A Windows alrendszernek engedélyezése a Linux számára lehetővé teszi, hogy futtasson Ubuntu bájtot a Windows 10, , Linux parancssori eszközök, Linux-első eszközök
Bash tömbök
A tömbök a leggyakrabban használt és alapvető adatszerkezetek. Ebben a cikkben a Bash tömböket fedjük le, és elmagyarázzuk, hogyan kell ezeket használni a Bash szkriptekben.
Bash a hurokért
Három alapvető hurokkonstrukció van a Bash szkriptekben, a hurokhoz, míg a hurokhoz és a hurokig. Ebben az oktatóanyagban bemutatjuk a hurkok alapjait Bash-ban, valamint a szünetet és folytatjuk az utasításokat a hurok áramlásának megváltoztatására.







