Када покренемо било коју команду у басх љусци, она генерално штампа излаз те команде на терминал тако да можемо одмах да је прочитамо. Али басх такође пружа опцију да се „преусмери“ излаз било које басх команде у датотеку евиденције. Може да сачува излаз у текстуалну датотеку тако да можемо да је прегледамо касније кад год је то потребно.
Метод 1: Запишите излаз само у датотеку
Да бисмо записали излаз Басх команди у датотеку, можемо користити знак правоугаоне заграде (>) или двоструки знак под правим углом (>>):
Знак правоугаоне заграде (>)
Користи се за писање излаза басх команде у датотеку на диску. Ако не постоји датотека са наведеним именом, онда се креира нова датотека са истим именом. Ако је датотека тамо са наведеним именом, садржај датотеке ће бити замењен.
Двоструки знак под правим углом (>>)
Користи се за писање излаза басх команди у датотеку, додајући излаз постојећем садржају датотеке. Ако датотека није присутна, креира нову са наведеним именом.
Технички, оба ова оператора преусмеравају 'стдоут (стандардни излаз)' у датотеку.
На једноставан начин, када пишемо датотеку по први пут и не желимо да претходни подаци буду присутни у датотеци, треба да користимо знак праве угаоне заграде (>). Он ће преписати садржај ако је већ присутан у датотеци. И у даљој скрипти, можемо користити двоструки знак под правим углом (>>) да бисмо додали податке у датотеку.
Пример
Команда 'лс' се користи за штампање свих датотека и фасцикли присутних у тренутном директоријуму. Али када покренемо команду 'лс' са знаком правог угла заграде (>), она неће одштампати листу датотека и фасцикли на екрану. Он ће сачувати излаз у датотеци коју наведемо са њим, тј., као што је приказано у наставку:
Басх Сцрипт
#!/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
Излаз
Као што је приказано овде, излаз команде 'лс' се преусмерава у датотеку. Да бисмо одштампали садржај датотеке на терминалу, можемо користити команду 'цат' у следећем облику:
Басх Сцрипт
#!/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
Излаз
Ако желимо да преусмеримо излаз више команди у једну датотеку без брисања доступних података, онда можемо користити >> оператор. Претпоставимо да желимо да додамо системске информације наведеној датотеци, то можемо учинити на следећи начин:
Басх Сцрипт
#!/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
Излаз
Овде се резултат друге команде додаје на крај датотеке.
баци инт у стринг
Овај процес можемо поновити неколико пута да бисмо наставили да додајемо излаз на крај датотеке.
Метод 2: Одштампајте излаз нормално и запишите га у датотеку
Неки људи можда неће волети писање излаза у датотеку помоћу оператора > или >>, јер неће бити излаза команде у терминалу. Због тога се користи команда 'тее'. Команда 'тее' се користи за штампање примљеног уноса на екран. Може истовремено да сачува излаз у датотеку.
Басх Сцрипт
#!/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
Излаз
Ово ће заменити садржај датотеке, баш као и оператор >, али и штампати излаз на екрану.
Ако желимо да запишемо излаз у датотеку без уклањања садржаја датотеке помоћу тее команде, можемо користити следећи образац који ће такође штампати излаз на терминалу:
Басх Сцрипт
#!/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
Излаз
Ово неће само додати излаз на крај датотеке, већ и штампати излаз на екрану.