Kaip rašyti į failą „Bash“

How Write File Bash

Viena iš pagrindinių užduočių, kurias atliekame dirbdami su „bash“ scenarijais, yra failų skaitymas ir rašymas. Šiame vadove mes sutelksime dėmesį į tai, kaip skaityti failus „bash“ ir kaip juos redaguoti.

Yra keli būdai, kaip skaityti ir rašyti failą „bash“. Paprasčiausias būdas yra naudoti operatorius> ir >>.



  • > operatorius perrašys esamus duomenis
  • >> operatorius pridės duomenis

Bendras peradresavimo operatorių naudojimo formatas yra toks:



Duomenys> Failo pavadinimas
Duomenys >> Failo pavadinimas

Supraskime rašymo į failo procedūrą pavyzdį:



Kaip parašyti failą naudojant peradresavimo operatorius

Kaip aptarta aukščiau, paprastas ir paprastas būdas rašyti į failą yra peradresavimo operatorių naudojimas. Pavyzdžiui, jei norite pakeisti jau esamo failo tekstą, pirmiausia sukurkite teksto failą pavadinimu testfile.txt ir parašyk bet ką:

Išsaugokite teksto failą.



Įveskite žemiau nurodytą komandą terminale:

$ echo Esamo teksto perrašymas faile> testfile.txt

Pervertimas gali būti rizikingas; todėl gera praktika yra įgalinti „noclobber“. Nustačius „noclobber“, būtų užblokuotas bet kurio išeitinio failo perrašymas.

$ set –o noclobber
$ echo Esamo teksto perrašymas faile> testfile.txt

Bet jei norite apeiti „noclobber“, naudokite > | operatorius, o ne > :

$ echo Esamo teksto perrašymas faile> | testfile.txt

Arba galite tiesiog išjungti „noclobber“:

$ set + arba noclobber

Tačiau ši komanda atims apsaugą nuo visų failų.

Aukščiau pateikta informacija rodo, kad esamas tekstas buvo perrašytas. Dabar naudokime >> operatorius:

$ echo Teksto pridėjimas prie esamo teksto failo >> testfile.txt

išmetė ne visada idealiai tinka naudoti, nes negalite formatuoti teksto naudodami jį, todėl vietoj aido naudokite printf, kad suformatuotumėte tekstą, kaip parodyta šioje komandoje:

$ printf Sveiki atvykę n Tai naujas teksto failas. > newtestfile.txt

Supraskime koncepciją naudodami „bash“ scenarijaus pavyzdį. Atidarykite „Vim“ terminale įvesdami „vim“. Jei jūsų prietaise nėra „Vim“ redaktoriaus, įdiekite jį naudodami:

$ sudo apt install vim

Įveskite scenarijų:

#! /bin/bash
echo Įveskite savo vardą
perskaityk pavadinimą
echo $ name> data_dir.txt
echo Įveskite savo amžių
skaityti amžių
echo $ age >> data_dir.txt
cat data_dir.txt

The katė komanda naudojama failams kurti ir redaguoti. Išsaugokite aukščiau pateiktą scenarijų „Vim“ perjungdami režimą, paspaudę Esc klavišą ir įveskite : myscript.sh . Atidarykite terminalą ir paleiskite kodą:

Kaip parašyti failą naudojant „Heredoc“

Jei norite parašyti kelias eilutes, paprasčiausias būdas yra naudoti „Heredoc“. Čia dokumentas, dar žinomas kaip „Heredoc“, yra daugiafunkcinis kodo blokas. Heredoc sintaksė yra tokia:

Komanda<<[-] Delimiter
.
tekstas/komandos
.

Skyriklis

Bet kuri eilutė gali būti naudojama vietoj skiriamųjų ženklų, o taip pat - galima pašalinti bet kokias skirtuko vietas tarp failo. Supraskime tai naudodami paprastą pavyzdį:

#! /bin/bash

katė<< TEXTFILE
Tai tekstinis failas.
Šis failas sukurtas naudojant heredoc.
TEXTFILE

Aukščiau pateikta scenarijaus katės komanda sukuria teksto failą TEXTFILE pavadinimu ir įrašo tekstą į ką tik sukurtą failą. Dabar išsaugokite failą pavadinimu myscript.sh . Paleiskite terminalą ir paleiskite scenarijų.

Kaip parašyti failą naudojant komandą Tee

Kitas būdas rašyti failą yra komanda Tee. Pavadinimas, nurodantis šią komandą, įveda ir rašo į failą ir tuo pačiu metu rodo išvestį. Pagal numatytuosius nustatymus komanda Tee perrašys esamus duomenis.

$ echo Tai yra tekstas | tee textfile.txt

Norėdami pridėti naudojimą –a:

$ echo Tai dar vienas tekstas | tee - teksto failas.txt

Norėdami parašyti kelias eilutes, naudokite:

$ echo Teksto pridėjimas prie kelių failų | tee textfile1.txt textfile2.txt textfile3.txt

Aukščiau pateikta komanda sukurs tris failus, jei jų nėra, ir rašys tekstą į kiekvieną iš jų.

Išvada

Šiame vadove daugiausia dėmesio skiriama keliems būdams rašyti į failą „bash“ su pavyzdžiais. Naudojant „bash“ scenarijus, yra keli failo rašymo būdai, tačiau paprasčiausias yra peradresavimo operatoriai>, >>. Norėdami parašyti kelias eilutes, galite naudoti heredoc, o jei norite įrašyti tuos pačius duomenis į kelias eilutes, komanda tee yra gana patogi.