Kuidas kirjutada faili Bashis

How Write File Bash



Üks olulisi ülesandeid, mida me bash -skriptidega töötades teeme, on failide lugemine ja kirjutamine. Selles juhendis keskendume sellele, kuidas bash -vormingus faile lugeda ja neid redigeerida.

Faili bash -is lugemiseks ja kirjutamiseks on mitu võimalust. Lihtsaim viis on kasutada operaatoreid> ja >>.







  • > operaator kirjutab olemasolevad andmed üle
  • >> operaator lisab andmed

Üldine ümbersuunamisoperaatorite kasutamise vorming on järgmine:



Andmed> Faili nimi
Andmed >> Faili nimi

Mõistame failiprotseduurile kirjutamist näitega:



Kuidas kirjutada faili ümbersuunamisoperaatorite abil?

Nagu eespool arutatud, on faili kirjutamise lihtne ja arusaadav lähenemine ümbersuunamisoperaatorite kasutamine. Näiteks kui soovite muuta juba olemasoleva faili teksti, looge esmalt tekstifail nimega testfile.txt ja kirjutage sinna kõik:





Salvestage tekstifail.



Sisestage terminalis alltoodud käsk:

$ echo Faili olemasoleva teksti ülekirjutamine> testfile.txt

Üleväänamine võib olla riskantne; seetõttu on hea tava lubada noclobber. Noclobberi seadistamine blokeeriks väljuva faili ülekirjutamise.

$ set –o noclobber
$ echo Faili olemasoleva teksti ülekirjutamine> testfile.txt

Aga kui soovite noclobberist mööda minna, kasutage > | operaatori asemel > :

$ echo Faili olemasoleva teksti ülekirjutamine> | testfile.txt

Või võite lihtsalt noclobberi keelata:

$ set + või noclobber

Kuid see käsk võtab kõikidelt failidelt kaitse ära.

Ülaltoodud väljund näitab, et olemasolev tekst on üle kirjutatud. Kasutame nüüd >> operaator:

$ echo Teksti lisamine olemasolevasse tekstifaili >> testfile.txt

viskas välja ei ole alati ideaalne kasutamiseks, kuna te ei saa teksti kasutades seda vormindada, seetõttu kasutage teksti vormindamiseks kaja asemel printf -i, nagu on näidatud järgmises käsus:

$ printf Tere tulemast n See on uus tekstifail. > newtestfile.txt

Mõistame kontseptsiooni bash -skripti näitega. Avage Vim, tippides terminali vim. Kui teie seadmes pole Vim -redaktorit, installige see, kasutades järgmist.

$ sudo apt install vim

Sisestage skript:

#! /bin/bash
echo Sisestage oma nimi
nime lugeda
echo $ name> data_dir.txt
echo Sisesta oma vanus
loe vanust
echo $ age >> data_dir.txt
kass data_dir.txt

The kass käsku kasutatakse failide loomiseks ja redigeerimiseks. Salvestage ülaltoodud skript Vimis, lülitades režiimi pärast nupu vajutamist Esc klahvi ja seejärel tippige : myscript.sh -s . Avage terminal ja käivitage kood:

Kuidas Heredociga faili kirjutada

Kui soovite kirjutada mitu rida, on lihtsaim viis kasutada Heredocit. Siin on dokument, tuntud ka kui Heredoc, mitmeotstarbeline koodiplokk. Heredoc'i süntaks on järgmine:

Käsk<<[-] Delimiter
.
tekst/käsud
.

Eraldaja

Eraldaja asemel saab kasutada mis tahes stringi ja - saab kasutada ka failis olevate tabulaatorite tühikute eemaldamiseks. Mõistame seda lihtsa näite abil:

#! /bin/bash

kass<< TEXTFILE
See on tekstifail.
See fail on loodud heredoc abil.
TEKSTIK

Ülaltoodud skripti cat käsk loob tekstifaili nimega TEXTFILE ja kirjutab teksti äsja loodud faili. Nüüd salvestage fail nimega myscript.sh . Käivitage terminal ja käivitage skript.

Kuidas kirjutada faili käsuga Tee

Teine meetod faili kirjutamiseks on käsu Tee kasutamine. Nime tähistav käsk võtab sisendi ja kirjutab faili ning näitab samaaegselt väljundit. Vaikimisi kirjutab Tee käsk olemasolevad andmed üle.

$ echo See on mingi tekst | tee tekstifail.txt

Kasutuse lisamiseks –a:

$ echo See on teine ​​tekst | tee –tekstifail.txt

Mitme rea kirjutamiseks kasutage:

$ echo Teksti lisamine mitmele failile | tee tekstifail1.txt tekstifail2.txt tekstifail3.txt

Ülaltoodud käsk loob kolm faili, kui neid pole olemas, ja kirjutab igale neist teksti.

Järeldus

See juhend keskendub mitmetele lähenemisviisidele, kuidas kirjutada näidetega bash -faili. Bash -skriptimisel on faili kirjutamiseks mitmeid viise, kuid lihtsaim on ümbersuunamisoperaatorite kasutamine>, >>. Mitme rea kirjutamiseks saab kasutada heredocit ja kui soovite kirjutada samu andmeid mitmele reale, on tee käsk üsna mugav.