A bash -ban többféleképpen olvashat és írhat egy fájlt. A legegyszerűbb módja a> és >> operátorok használata.
- > az operátor felülírja a meglévő adatokat
- >> az üzemeltető adatokat fűz hozzá
Az átirányítási operátorok általános formátuma a következő:
Adatok> Fájlnév
Adatok >> Fájlnév
Értsük meg egy fájl eljárásának írását egy példával:
Fájl írása az átirányítási operátorok használatával
Amint azt fentebb tárgyaltuk, a fájlba írás egyszerű és egyszerű megközelítése az átirányítási operátorok használata. Például, ha egy már létező fájl szövegét szeretné megváltoztatni, akkor először hozzon létre egy szövegfájlt a testfile.txt és írj bele bármit:
Mentse el a szövegfájlt.
Írja be az alábbi parancsot a terminálba:
$ echo A meglévő szöveg felülírása a fájlban> testfile.txt
A túlcsavarás kockázatos lehet; ezért helyes gyakorlat a noclobber engedélyezése. A noclobber beállítása blokkolja a kilépő fájlok felülírását.
$ set –o noclobber$ echo A meglévő szöveg felülírása a fájlban> testfile.txt
De ha meg akarja kerülni a noclobbert, akkor használja a > | operátor helyett > :
$ echo A meglévő szöveg felülírása a fájlban> | testfile.txtVagy egyszerűen letilthatja a noclobbert:
$ set + vagy noclobber
De ez a parancs elveszi az összes fájl védelmét.
A fenti kimenet azt jelzi, hogy a meglévő szöveg felül lett írva. Most használjuk a >> operátor:
$ echo Szöveg hozzáfűzése a meglévő szövegfájlhoz >> testfile.txt
kidobta nem mindig ideális a használatához, mivel ezzel nem lehet szöveget formázni, ezért használja a printf parancsot az echo helyett a szöveg formázásához a következő parancs szerint:
$ printf Üdvözöljük n Ez egy új szövegfájl. > newtestfile.txt
Értsük meg a fogalmat egy bash script példával. A Vim megnyitásához írja be a vim parancsot a terminálba. Ha nincs Vim szerkesztő az eszközön, telepítse a következővel:
$ sudo apt install vimÍrja be a szkriptet:
#! /bin/bashecho Írja be a nevét
nevet olvasni
echo $ name> data_dir.txt
echo Adja meg életkorát
kor olvassa
echo $ age >> data_dir.txt
cat data_dir.txt
Az macska parancs a fájlok létrehozására és szerkesztésére szolgál. Mentse a fenti szkriptet a Vim -be, ha a gomb megnyomása után módot vált Kilépés gombot, majd írja be : a myscript.sh -ban . Nyissa meg a terminált, és futtassa a kódot:
Fájl írása a Heredoc használatával
Ha több sort szeretne írni, akkor a legegyszerűbb módszer a Heredoc használata. Itt a dokumentum, más néven Heredoc, egy többcélú kódblokk. A Heredoc szintaxisa a következő:
Parancs<<[-] Delimiter.
szöveg/parancsok
.
Elhatároló
Bármilyen karakterlánc használható a elválasztó helyén, és - a fájl bármelyik tabulátor szóközének eltávolítására is használható. Értsük meg egy egyszerű példával:
#! /bin/bashmacska<< TEXTFILE
Ez egy szöveges fájl.
Ez a fájl a heredoc használatával készült.
SZÖVEGES FÁJL
A fenti script cat parancs szöveges fájlt hoz létre a TEXTFILE nevével, és szöveget ír be a most létrehozott fájlba. Most mentse el a fájlt myscript.sh . Indítsa el a terminált, és futtassa a szkriptet.
Fájl írása a Tee paranccsal
Egy másik módszer a fájl írására a Tee parancs használata. Névként ez a parancs bemenetet ír és fájlba ír, és egyidejűleg megjeleníti a kimenetet. Alapértelmezés szerint a Tee parancs felülírja a meglévő adatokat.
$ echo Ez egy szöveg | tee textfile.txt
A használat hozzáfűzéséhez –a:
$ echo Ez egy másik szöveg | tee –a textfile.txt
Több sor írásához használja:
$ echo Szöveg hozzáadása több fájlhoz | tee textfile1.txt textfile2.txt textfile3.txt
A fenti parancs három fájlt hoz létre, ha nem léteznek, és szöveget ír mindegyikhez.
Következtetés
Ez az útmutató többféle megközelítésre összpontosít, amelyekben példák segítségével bash fájlba írhat. A bash szkriptekben többféleképpen írhatunk egy fájlt, de a legegyszerűbb az átirányítási operátorok>, >> használata. Több sor írásához a heredoc használható, és ha ugyanazokat az adatokat több sorba szeretné írni, akkor a tee parancs nagyon praktikus.