logo

Bash Rakstīt failā

Kad mēs palaižam jebkuru komandu bash čaulā, tā parasti izdrukā šīs komandas izvadi terminālī, lai mēs varētu to nekavējoties izlasīt. Bet bash nodrošina arī iespēju “novirzīt” jebkuras bash komandas izvadi uz žurnāla failu. Tas var saglabāt izvadi teksta failā, lai mēs varētu to pārskatīt vēlāk, kad vien tas ir nepieciešams.

1. metode: ierakstiet izvadi tikai failā

Lai ierakstītu Bash komandu izvadi failā, mēs varam izmantot taisnleņķa iekavas zīmi (>) vai dubultā taisnleņķa zīmi (>>):

Labā leņķa kronšteina zīme (>)

To izmanto, lai rakstītu komandas bash izvadi diska failā. Ja nav faila ar norādīto nosaukumu, tas izveido jaunu failu ar tādu pašu nosaukumu. Ja fails tur atrodas ar norādīto nosaukumu, faila saturs tiks pārrakstīts.

Dubultā taisnleņķa zīme (>>)

To izmanto, lai rakstītu bash komandu izvadi failā, pievienojot izvadi esošajam faila saturam. Ja faila nav, tas izveido jaunu ar norādīto nosaukumu.

Tehniski abi šie operatori novirza 'stdout (standarta izvade)' uz failu.

Vienkāršā veidā, kad mēs rakstām failu pirmo reizi un nevēlamies, lai failā būtu iepriekšējie dati, mums vajadzētu izmantot taisnā leņķa iekavas zīmi (>). Tas pārrakstīs saturu, ja tas jau ir failā. Un turpmākajā skriptā mēs varam izmantot dubultā taisnleņķa zīmi (>>), lai pievienotu datus failam.

Piemērs

Komanda 'ls' tiek izmantota, lai drukātu visus pašreizējā direktorijā esošos failus un mapes. Bet, palaižot komandu “ls” ar taisnleņķa iekavas zīmi (>), tā nedrukās failu un mapju sarakstu ekrānā. Tas saglabās izvadi failā, kuru mēs ar to norādām, t.i., kā parādīts zemāk:

Bash skripts

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Checking the content of the file gedit output_file.txt 

Izvade

Bash rakstīšanas fails

Kā parādīts šeit, komandas “ls” izvade tiek novirzīta uz failu. Lai terminālī izdrukātu faila saturu, mēs varam izmantot komandu 'cat' šādā formā:

Bash skripts

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Printing the content of the file cat $output 

Izvade

Bash rakstīšanas fails

Ja mēs vēlamies novirzīt vairāku komandu izvadi uz vienu failu, neizdzēšot pieejamos datus, mēs varam izmantot >> operatoru. Pieņemsim, ka mēs vēlamies pievienot sistēmas informāciju norādītajam failam, mēs to varam izdarīt šādi:

Bash skripts

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Appending the system information uname -a >> $output #Checking the content of the file gedit output_file.txt 

Izvade

Bash rakstīšanas fails

Šeit otrās komandas rezultāts tiek pievienots faila beigām.

tipa mainīgie java

Mēs varam atkārtot šo procesu vairākas reizes, lai turpinātu pievienot izvadi faila beigām.

2. metode: izdrukājiet parasto izdruku un ierakstiet to failā

Dažiem cilvēkiem var nepatikt rakstīt izvadi failā, izmantojot operatorus > vai >>, jo terminālī komanda netiks izvadīta. Tāpēc tiek izmantota komanda 'tee'. Komanda “tee” tiek izmantota, lai izdrukātu ekrānā saņemto ievadi. Tas var vienlaikus saglabāt izvadi failā.

Bash skripts

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls | tee $output 

Izvade

Bash rakstīšanas fails

Tas ignorēs faila saturu, tāpat kā operators >, bet arī izdrukās izvadi ekrānā.

Ja mēs vēlamies ierakstīt izvadi failā, nenoņemot faila saturu, izmantojot komandu tee, mēs varam izmantot šādu veidlapu, kas arī izdrukās izvadi terminālī:

Bash skripts

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt echo '<<>>' | tee -a $output #Write data to a file ls | tee $output echo | tee -a $output #Append System Information to the file echo '<<>>' | tee -a $output uname | tee -a $output 

Izvade

Bash rakstīšanas fails

Tas ne tikai pievienos izvadi faila beigām, bet arī izdrukās izvadi uz ekrāna.