Hi ha diverses maneres de llegir i escriure un fitxer en bash. La forma més senzilla és utilitzar operadors> i >>.
- > l'operador sobreescriurà les dades existents
- >> L'operador afegirà dades
El format general d’utilitzar operadors de redirecció és:
Dades> Nom del fitxer
Dades >> Nom del fitxer
Entenem el procediment d’escriptura en un fitxer amb un exemple:
Com escriure un fitxer mitjançant operadors de redirecció
Com s’ha comentat anteriorment, l’enfocament senzill i directe d’escriure a un fitxer utilitza operadors de redirecció. Per exemple, si voleu canviar el text d'un fitxer ja existent, primer creeu un fitxer de text amb el nom de fitxer de prova.txt i escriviu-hi qualsevol cosa:
Deseu el fitxer de text.
Escriviu l'ordre esmentada a continuació al terminal:
$ echo Sobreescrivint el text existent al fitxer> testfile.txt
Un excés de torçar pot ser arriscat; per tant, és una bona pràctica habilitar nocobber. La configuració de noclobber bloquejaria qualsevol sobreescriptura a qualsevol fitxer que surti.
$ Setembre -o noclobber$ echo Sobreescrivint el text existent al fitxer> testfile.txt
Però si voleu passar per alt el noclobber, feu servir el fitxer > | operador en lloc de > :
$ echo Sobreescrivint el text existent al fitxer> | fitxer de prova.txtO simplement podeu desactivar noclobber:
$ Set + o noclobber
Però aquesta ordre eliminarà la protecció de tots els fitxers.
La sortida anterior indica que s’ha sobreescrit el text existent. Ara, fem servir el >> operador:
$ echo Afegir text al fitxer de text existent >> testfile.txt
trobo no sempre és ideal per utilitzar-lo, ja que no es pot formatar text amb ell, per tant, utilitzeu printf al lloc d'eco per formatar el text tal com es demostra a l'ordre següent:
$ printf Benvinguda n Es tracta d'un fitxer de text nou. > newtestfile.txt
Comprenguem el concepte amb un exemple de guió bash. Obriu Vim escrivint vim al terminal. Si no teniu editor Vim al dispositiu, instal·leu-lo mitjançant:
$ sudo apt install vimEscriviu l'script:
#! / bin / basheco Introduïu el vostre nom
llegeix el nom
echo $ name> data_dir.txt
eco Introduïu la vostra edat
llegir edat
echo $ age >> data_dir.txt
cat data_dir.txt
El gat La comanda s'utilitza per crear i editar els fitxers. Deseu l'script anterior a Vim canviant de mode després de prémer el botó Esc tecla i, a continuació, escriviu : a myscript.sh . Obriu el terminal i executeu el codi:
Com escriure un fitxer mitjançant Heredoc
Si voleu escriure diverses línies, el mètode més senzill és utilitzar Heredoc. El document aquí, també conegut com Heredoc, és un bloc de codi polivalent. La sintaxi d'Heredoc és:
Comandament<<[-] Delimiter.
text / ordres
.
Delimitador
Qualsevol cadena es pot utilitzar al lloc de Delimitador i - també es pot utilitzar per eliminar qualsevol espai de pestanya del fitxer. Entenem-ho mitjançant un exemple senzill:
#! / bin / bashgat<< TEXTFILE
Es tracta d’un fitxer de text.
Aquest fitxer es crea amb heredoc.
FITXA DE TEXT
L'ordre script script anterior crea un fitxer de text amb el nom de TEXTFILE i escriu text al fitxer que acaba de crear. Ara deseu el fitxer amb el nom de myscript.sh . Inicieu el terminal i executeu l'script.
Com escriure un fitxer mitjançant l'ordre Tee
Un altre mètode per escriure un fitxer és utilitzar l’ordre Tee. Com a nom que indica aquesta ordre, pren entrada i escriu en un fitxer i mostra la sortida simultàniament. Per defecte, l'ordre Tee sobreescriurà les dades existents.
$ echo Aquest és un text | tee textfile.txt
Per afegir l'ús –a:
$ echo Aquest és un altre text | tee: un fitxer de text.txt
Per escriure diverses línies, utilitzeu:
$ echo Afegir text a diversos fitxers | te textfile1.txt textfile2.txt textfile3.txt
L'ordre anterior crearà tres fitxers si no existeixen i escriurà text a cadascun d'ells.
Conclusió
Aquesta guia se centra en múltiples enfocaments per escriure a un fitxer en bash amb exemples. A bash scripting, hi ha diverses maneres d’escriure un fitxer, però la més senzilla és utilitzar operadors de redirecció>, >>. Per escriure diverses línies, es pot utilitzar heredoc i, si voleu escriure les mateixes dades a diverses línies, l'ordre tee és força útil.