Има няколко начина за четене и запис на файл в bash. Най -простият начин е да използвате оператори> и >>.
- > операторът ще презапише съществуващите данни
- >> операторът ще добави данни
Общият формат на използване на оператори за пренасочване е:
Данни> Име на файл
Данни >> Име на файла
Нека разберем процедурата за запис на файл с пример:
Как да напиша файл с помощта на оператори за пренасочване
Както бе обсъдено по -горе, простият и ясен подход при запис на файл използва оператори за пренасочване. Например, ако искате да промените текста на вече съществуващ файл, първо създайте текстов файл с името на testfile.txt и напиши нещо в него:
Запазете текстовия файл.
Въведете посочената по-долу команда в терминала:
$ echo Презаписване на съществуващия текст във файла> testfile.txt
Превиването може да бъде рисковано; следователно е добра практика да се даде възможност на noclobber. Задаването на noclobber ще блокира всяко презаписване на всеки изходящ файл.
$ set –o noclobber$ echo Презаписване на съществуващия текст във файла> testfile.txt
Но ако искате да заобиколите noclobber, използвайте > | оператор вместо > :
$ echo Презаписване на съществуващия текст във файла> | testfile.txtИли можете просто да деактивирате noclobber:
$ set + или noclobber
Но тази команда ще отнеме защитата от всички файлове.
Горният изход показва, че съществуващият текст е презаписан. Сега, нека използваме >> оператор:
$ echo Добавяне на текст към съществуващия текстов файл >> testfile.txt
изхвърлен не винаги е идеален за използване, тъй като не можете да форматирате текст с него, затова използвайте printf на мястото на echo, за да форматирате текста, както е показано в следната команда:
$ printf Добре дошли n Това е нов текстов файл. > newtestfile.txt
Нека разберем концепцията с пример за bash скрипт. Отворете Vim, като въведете vim в терминала. Ако нямате Vim редактор на устройството си, инсталирайте го, като използвате:
$ sudo apt install vimВъведете скрипта:
#! /bin/bashecho Въведете вашето име
прочетено име
echo $ name> data_dir.txt
echo Въведете възрастта си
прочетете възраст
echo $ age >> data_dir.txt
cat data_dir.txt
The котка команда се използва за създаване и редактиране на файлове. Запазете горния скрипт във Vim, като превключите в режим след натискане на Esc ключ и след това въведете : в myscript.sh . Отворете терминала и стартирайте кода:
Как да напиша файл с помощта на Heredoc
Ако искате да напишете няколко реда, тогава най -лесният метод е използването на Heredoc. Тук документът, известен също като Heredoc, е многофункционален кодов блок. Синтаксисът на Heredoc е:
Команда<<[-] Delimiter.
текст/команди
.
Разделител
Всеки низ може да се използва на мястото на Разделител и - също може да се използва за премахване на всички раздели в раздела във файла. Нека го разберем, използвайки прост пример:
#! /bin/bashкотка<< TEXTFILE
Това е текстов файл.
Този файл е създаден с помощта на heredoc.
ТЕКСТФИЛ
Горната команда cat cat създава текстов файл с името TEXTFILE и записва текст в току -що създадения файл. Сега запишете файла с името на myscript.sh . Стартирайте терминала и стартирайте скрипта.
Как да напиша файл с помощта на командата Tee
Друг метод за запис на файл е използването на командата Tee. Като име, което указва, тази команда приема вход и записва във файл и показва изход едновременно. По подразбиране командата Tee ще презапише съществуващите данни.
$ echo Това е текст | tee textfile.txt
За да добавите използване –a:
$ echo Това е друг текст | tee - текстов файл.txt
За да напишете няколко реда, използвайте:
$ echo Добавяне на текст към множество файлове | tee textfile1.txt textfile2.txt textfile3.txt
Горната команда ще създаде три файла, ако не съществуват, и ще напише текст към всеки от тях.
Заключение
Това ръководство се фокусира върху множество подходи за писане във файл на bash с примери. В bash скриптовете има няколко начина за писане на файл, но най -простият е използването на оператори за пренасочване>, >>. За да напишете няколко реда, може да се използва heredoc и ако искате да напишете едни и същи данни в няколко реда, тогава командата tee е доста удобна.