Како писати у датотеку у Басх -у

How Write File Bash



Један од основних задатака које радимо док радимо са басх скриптом је читање и писање датотека. У овом водичу ћемо се фокусирати на то како читати датотеке у басху и како их уредити.

Постоји више начина за читање и писање датотеке у басху. Најједноставнији начин је коришћење оператора> и >>.





  • > оператор ће пребрисати постојеће податке
  • >> оператор ће додати податке

Општи формат коришћења оператора преусмеравања је:



Подаци> Назив датотеке
Подаци >> Назив датотеке

Хајде да разумемо поступак писања у датотеку са примером:



Како написати датотеку помоћу оператора преусмеравања

Као што је горе речено, једноставан и јасан приступ писању у датотеку користи операторе преусмеравања. На пример, ако желите да промените текст већ постојеће датотеке, прво направите текстуалну датотеку по имену тестфиле.ткт и упишите било шта у њега:





Сачувајте текстуалну датотеку.



Унесите следећу команду у терминал:

$ ецхо Преписивање постојећег текста у датотеци> тестфиле.ткт

Прекорачење може бити ризично; стога је добра пракса омогућити ноцлоббер. Постављање ноцлоббер блокирало би свако преписивање било које излазне датотеке.

$ сет –о ноцлоббер
$ ецхо Преписивање постојећег текста у датотеци> тестфиле.ткт

Али ако желите заобићи ноцлоббер, користите > | оператер уместо > :

$ ецхо Преписивање постојећег текста у датотеци> | тестфиле.ткт

Или можете једноставно онемогућити ноцлоббер:

$ сет + или ноцлоббер

Али ова команда ће одузети заштиту свим датотекама.

Горњи излаз указује на то да је постојећи текст преписан. Сада, искористимо >> оператер:

$ ецхо Додавање текста у постојећу текстуалну датотеку >> тестфиле.ткт

Избацио није увек идеалан за употребу јер не можете да форматирате текст помоћу њега, зато користите принтф уместо еха за форматирање текста као што је приказано у следећој команди:

$ принтф Добродошли н Ово је нова текстуална датотека. > невтестфиле.ткт

Хајде да разумемо концепт са примером басх скрипте. Отворите Вим уписивањем вим у терминал. Ако немате Вим едитор на свом уређају, инсталирајте га помоћу:

$ судо апт инсталл вим

Упишите скрипту:

#! /бин/басх
ецхо Унесите своје име
прочитано име
ецхо $ наме> дата_дир.ткт
ецхо Унесите своје године
читај старости
ецхо $ аге >> дата_дир.ткт
цат дата_дир.ткт

Тхе мачка команда се користи за креирање и уређивање датотека. Сачувајте горњу скрипту у Виму променом режима након притиска на изаћи кључ, а затим откуцајте : у мисцрипт.сх . Отворите терминал и покрените код:

Како написати датотеку користећи Хередоц

Ако желите да напишете више редова, најједноставнији метод је коришћење Хередоц -а. Овде је документ, такође познат као Хередоц, вишенаменски кодни блок. Синтакса Хередоца је:

Команда<<[-] Delimiter
.
текст/команде
.

Делимитер

Било који низ може да се користи уместо Делимитера, а - такође може да се користи за уклањање свих размака у датотеци. Хајде да то разумемо на једноставном примеру:

#! /бин/басх

мачка<< TEXTFILE
Ово је текстуална датотека.
Ова датотека је направљена помоћу хередоц -а.
ТЕКСТФИЛЕ

Горња наредба цат скрипте ствара текстуалну датотеку под именом ТЕКСТФИЛЕ и уписује текст у датотеку која је управо створена. Сада сачувајте датотеку под именом мисцрипт.сх . Покрените терминал и покрените скрипту.

Како написати датотеку помоћу команде Тее

Други начин писања датотеке је употреба команде Тее. Као име које означава ова команда узима улаз и записује у датотеку и приказује излаз истовремено. Подразумевано, команда Тее ће пребрисати постојеће податке.

$ ецхо Ово је неки текст | тее тектфиле.ткт

Да бисте додали употребу –а:

$ ецхо Ово је још један текст | тее –а тектфиле.ткт

Да бисте написали више редова, користите:

$ ецхо Додавање текста у више датотека | тее тектфиле1.ткт тектфиле2.ткт тектфиле3.ткт

Горња команда ће створити три датотеке ако не постоје и написати текст у сваку од њих.

Закључак

Овај водич се фокусира на више приступа писању у датотеку у басх -у са примерима. У басх скриптирању постоји више начина за писање датотеке, али најједноставнији је коришћење оператора преусмеравања>, >>. За писање више редова може се користити хередоц, а ако желите исписати исте податке у више редова, команда тее је прилично згодна.