Један од најчешћих задатака приликом писања Басх скрипти или рада на Линук командној линији је читање и писање датотека.
Овај чланак објашњава како написати текст у датотеку у Басху помоћу оператора преусмеравања и тее
команда.
Записивање у датотеку помоћу оператора преусмеравања #
У Басху, преусмеравање излаза омогућава вам да снимите излаз из наредбе и запишете га у датотеку.
Општи формат за преусмеравање и писање излаза у датотеку је следећи:
излаз> име датотеке излаз >> име датотеке
- Тхе
>
редирецтион оператор уписује излаз у дату датотеку. Ако датотека постоји, скраћује се на нулту дужину. У супротном, датотека се креира. Будите посебно опрезни када користите овај оператор јер можете преписати важну датотеку. - Тхе
>>
редирецтион оператор додаје излаз датој датотеци. Датотека се креира ако не постоји.
Морате имати дозволе за писање у датотеку. У супротном, добићете грешку одбијену дозволу.
Ево једноставног примера који показује како се преусмерава излаз из одјек
наредба за датотеку:
ецхо "ово је линија"> датотека.ткт
Да бисте спречили преписивање постојећих датотека, омогућите опцију „ноцлоббер“ помоћу комплет
уграђено:
сет -о ноцлоббер
ецхо "ово је линија"> датотека.ткт
басх: датотека.ткт: не може преписати постојећу датотеку
Тхе > |
Оператор вам омогућава да замените опцију Басх „ноцлоббер“:
сет -о ноцлоббер
ецхо "ово је линија"> | датотека.ткт
Тхе >>
оператор додаје излаз на крај датотеке, уместо да преписује датотеку:
ецхо "ово је линија" >> датотека.ткт
Користити принтф
наредба за стварање сложеног излаза:
принтф "Здраво, ја сам% с.\ н "$ УСЕР> датотека.ткт
Ако желите да у датотеку упишете више редова, користите преусмеравање Хере доцумент (Хередоц).
На пример, можете проследити садржај на мачка
наредбу и запишите је у датотеку:
мачка << EOF > датотека.ткт Тренутни радни директоријум је: $ ПВД Пријављени сте као $ (вхоами) ЕОФ
Да бисте додали редове, промените >
са >>
пре имена датотеке:
мачка << EOF >> датотека.ткт Тренутни радни директоријум је: $ ПВД Пријављени сте као $ (вхоами) ЕОФ
Излаз било које наредбе можете написати у датотеку:
датум + "Година:% И, Месец:% м, Дан:% д"> датотека.ткт
Излаз из датум
наредба ће бити записана у датотеку.
Писање у датотеку помоћу тее
Цомманд #
Тхе тее
наредба чита са стандардног улаза и истовремено пише на стандардни излаз и у једну или више датотека.
ецхо "ово је линија" | тее филе.ткт
Тхе тее
подразумевано понашање наредбе је да препише наведену датотеку, исто као и >
оператер. Да бисте додали излаз датотеци, позовите наредбу помоћу -а
(--додати
) опција:
ецхо "ово је линија" | тее-датотека.ткт
Ако не желите тее
да бисте писали на стандардни излаз, можете га преусмерити на / дев / нулл
:
ецхо "ово је линија" | тее филе.ткт> / дев / нулл
Да бисте текст написали у више датотека, наведите датотеке као аргументе за тее
наредба:
ецхо "ово је линија" | тее филе_1.ткт филе_2.ткт филе_3.ткт
Још једна предност тее
наредба је да је можете користити заједно са судо
и писати у датотеке у власништву других корисника. Да бисте додали текст датотеци у коју немате дозволу за писање, додајте судо
пре него што тее
:
ецхо "ово је линија" | судо тее филе.ткт
Тхе одјек
Излаз наредбе се предаје као улаз у тее
, што повисује дозволе за судо и записује текст у датотеку.
Закључак #
У Линуку за писање текста у датотеку користите >
и >>
оператери преусмеравања или тее
команда.
Ако имате питања или повратне информације, слободно оставите коментар.