logo

Bash Írás fájlba

Ha bármilyen parancsot futtatunk egy bash shellben, az általában kiírja a parancs kimenetét a terminálra, hogy azonnal elolvashassuk. De a bash lehetőséget biztosít bármely bash parancs kimenetének naplófájlba való „átirányítására”. A kimenetet szöveges fájlba tudja menteni, hogy később bármikor ellenőrizhessük, amikor szükség van rá.

1. módszer: A kimenet írása csak fájlba

A Bash parancsok kimenetének fájlba írásához használhatunk derékszögű zárójelet (>) vagy kettős derékszögű jelet (>>):

Derékszögű zárójel (>)

A bash parancs kimenetének lemezfájlba írására szolgál. Ha nincs a megadott nevű fájl, akkor létrehoz egy új fájlt azonos néven. Ha a fájl ott van a megadott néven, akkor a fájl tartalma felülíródik.

Dupla derékszögű jel (>>)

Arra használják, hogy a bash parancsok kimenetét fájlba írják, hozzáfűzve a kimenetet a fájl meglévő tartalmához. Ha a fájl nincs jelen, akkor létrehoz egy újat a megadott néven.

Technikailag mindkét operátor átirányítja az „stdout-ot (a szabványos kimenet)” egy fájlba.

Egyszerűen, amikor először írjuk a fájlt, és nem akarjuk, hogy korábbi adatok jelenjenek meg a fájlban, használjuk a derékszögű zárójelet (>). Felülírja a tartalmat, ha az már jelen van a fájlban. A további szkriptben pedig dupla derékszögű jelet (>>) használhatunk, hogy az adatokat fájlhoz fűzzük.

Példa

Az 'ls' parancs az aktuális könyvtárban található összes fájl és mappa kinyomtatására szolgál. De ha az 'ls' parancsot derékszögű zárójellel (>) futtatjuk, akkor nem nyomtatja ki a fájlok és mappák listáját a képernyőre. A kimenetet a vele megadott fájlba menti, azaz az alábbiak szerint:

Bash Script

 #!/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 

Kimenet

Bash Write File

Amint az itt látható, az 'ls' parancs kimenete át van irányítva egy fájlba. Egy fájl tartalmának a terminálra való kinyomtatásához használhatjuk a 'cat' parancsot a következő formában:

Bash Script

 #!/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 

Kimenet

Bash Write File

Ha több parancs kimenetét szeretnénk átirányítani egyetlen fájlba anélkül, hogy a rendelkezésre álló adatokat törölnénk, akkor használhatjuk a >> operátort. Tegyük fel, hogy a rendszerinformációkat szeretnénk hozzáfűzni a megadott fájlhoz, ezt a következő módon tehetjük meg:

Bash Script

 #!/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 

Kimenet

Bash Write File

Itt a második parancs eredménye a fájl végéhez fűződik.

hogyan lehet kitörni a while ciklusból a java

Ezt a folyamatot többször megismételhetjük, hogy a kimenetet a fájl végéhez fűzzük.

2. módszer: Nyomtassa ki a kimenetet normál módon, és írja be egy fájlba

Előfordulhat, hogy néhány ember nem szereti a kimenetet fájlba írni > vagy >> operátorokkal, mivel a parancs kimenete nem lesz a terminálban. Ezért használják a „tee” parancsot. A 'tee' paranccsal a kapott bemenetet a képernyőre nyomtatják. A kimenetet egyidejűleg fájlba tudja menteni.

Bash Script

 #!/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 

Kimenet

Bash Write File

Ez felülírja a fájl tartalmát, akárcsak a > operátor, de kinyomtatja a kimenetet is a képernyőn.

Ha a kimenetet fájlba akarjuk írni anélkül, hogy a fájl tartalmát eltávolítanánk a tee paranccsal, használhatjuk a következő űrlapot, amely a kimenetet a terminálra is kiírja:

Bash Script

 #!/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 

Kimenet

Bash Write File

Ez nem csak a kimenetet hozzáfűzi a fájl végéhez, hanem ki is nyomtatja a képernyőre.