Hvordan skrive til en fil i bash

Hvordan skrive til en fil i bash

Å lese og skrive filene er en av de vanlige oppgavene mens du skriver bash -skript. For eksempel å lagre utdataene fra en kommando til en fil eller bare manipulere filene i bash forskjellige kommandoer brukes. Det er en rekke måter å skrive en hvilken som helst fil i bash gjennom.

Skrivefil i bash

Som nevnt ovenfor er det flere måter å skrive en hvilken som helst fil på mens Bash Scripting og nedenfor er noen måter å skrive en fil i bash:

  • Ved hjelp av retningsoperatører
  • Bruke tee -kommando
  • Bruke Heredoc
  • Bruke Printf -kommando

Ved hjelp av retningsoperatører

Det er vanligvis to retningsbestemte operatører man kan bruke til å skrive en fil mens Bash Scripting, en er en vinkelbrakett “>” Og den andre er dobbeltvinkelbrakett “>>”. Den primære forskjellen mellom de to er at “>” Overskriver dataene som tidligere var til stede i filen med de nye dataene, mens ">> ” På den annen side legger bare til de nye dataene i filen.

Å bruke noen av retningsoperatørene nedenfor er den respektive syntaks som man bør følge:

$ ekko <“data”>

For å legge til data i en hvilken som helst fil som er tom for øyeblikket eller for å overskrive dataene i en hvilken som helst fil, bruker du for eksempel ovennevnte syntaks som dette:

$ ECHO “Hallo Linuxhint 1”> MyFile.tekst

Neste, for å bruke “>>” Retningsoperatør for å legge til data i filen jeg har brukt ovennevnte syntaks som dette:

$ ECHO “Hallo Linuxhint 2” >> MyFile.tekst

Husk at ovennevnte syntaks ikke bare skriver filen, men også vil opprette en fil hvis det ikke er noen.

Bruke tee -kommando

En annen måte å skrive hvilken som helst fil på mens Bash Scripting er ved å bruke TEE -kommandoen og nedenfor er den gitte syntaks for bruk av denne kommandoen:

$ ECHO “Data” | tee

For eksempel, hvis jeg vil legge til noen data i en hvilken som helst fil, kan ovennevnte syntaks brukes slik:

$ ECHO “Velkommen til Linuxhint” | tee myfile.tekst

Husk at syntaks ovenfor er gunstig ikke bare for å skrive dataene, men det kan også brukes i tilfelle hvis noen ønsker å overskrive dataene som for øyeblikket er til stede i filen med de nye dataene.

Så hvis du vil oppbevare gjeldende data og vil skrive filen med nytt datasett, så bruk -en flagg med den gitte syntaks som:

$ ECHO “Hilsen” | tee -Et myfil.tekst

Hvis du vil legge til samme data i flere filer, kan denne kommandoen være til stor hjelp, tee Kommando kan brukes til et slikt formål som dette:

$ ECHO “Hilsen” | tee -a myfile1.txt myfile2.txt myfile3.tekst

En annen fordel med å bruke denne kommandoen er at man kan redigere en fil som eies av de andre brukerne ved hjelp av å bruke administrasjonsprivilegier som denne:

$ ECHO “Dette er en testfil” | sudo tee -a myfile1.tekst

Bruke Printf -kommando

Siden de ovennevnte måtene ikke gir friheten til å legge til formatering i dataene, så hvis du vil legge til spesifikk formatering til dataene da printf kan brukes slik:

$ printf “Hilsen fra Linuxhint \ nThis er en testfil.\ n ”>> myfile1.tekst

Bruke Heredoc

En annen måte å skrive en fil i bash er ved å bruke her dokument Format, det er ikke noen form for kommando, men det er mer som et format man kan følge for å skrive flere data med data, nedenfor er formatet til Heredoc:

katt << [delimiter]
data…
[avgrensning]

Her i syntakskatten brukes til å lese dataene, og avgrenser er en slags grense for dataene; det kan være en streng eller filnavn. I normal praksis brukes vanligvis ende eller EOF som en avgrenser, men alt avhenger av brukerens preferanse.

For eksempel har jeg laget en .SH -filen og brukte formatet til Heredoc slik:

#! /bin/bash
katt << MYFILE
Hilsen fra Linuxhint
Dette er en testfil opprettet ved hjelp av Heredoc
Myfile

Nå for å se om dataene lagres riktig, la oss kjøre denne filen ved å bruke:

$ Bash MyBashScript.sh

Konklusjon

Det er en tøff jobb å skrive filer mens man skript i et Linux -system er en tøff jobb hvis man ikke har god kunnskap om å bruke Linux -kommandoer. Denne guiden gir 4 måter å skrive en hvilken som helst fil på mens du baserer skripting som er: Bruke retningsoperatører, tee kommando, printf og Heredoc.