Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games

Изучаем Bash: Перенаправление информации в файл

Доброго времени суток всем! :) Я думаю, все кто работал в Linux, так или иначе пробывали те или иные действия в терминале. Лично мне часто приходится работать именно в нем, даже если аналогичное действие можно с таким же успехом сделать и при помощи GUI.

Почему?

Потому что, тем самым я нарабатываю практический опыт и конечно для запоминания разного рода команд.

Тут будут и скрипты, написанные мной (и не только) и конечно подробное их описания.

Вообщем, начнем как обычно с простого и по мере продвижения в более глубокие знания Bash, будем тут все описывать и опубликовывать. :)

Тогда, первое, с чего бы я хотел начать - это перенаправления информации из Bash.

Перенаправление информации из Bash в файл

В ОС Linux по-умолчанию существую 3 источника информации:

  1. 0 (stdin) - клавиатура;
  2. 1 (stdout) - экран;
  3. 2 (stderr) - сообщения об ошибках с экрана.

Для их использования, прописываем в скрипте цифры 0 - 2, в зависимсти, какой из источников хотите использовать.

Приведу пример, использования источника 1 (stdout) - экран, в простом скрипте:

#!/bin/sh (bash)          #Данная команда, показывает, какой интерпритатор должен обрабатывать наш скрипт. В нашем случае это
                                   # прописывать не обезательно, потому что мы не используюм никакие спецефические команды, не подсильные интерпретитору Bash.

date 1>/home/maxim/rezultat_raboti.log

Итак, что же представляет этот скрипт?

С первой строчкой я думаю все понятно, так как я добавил коментарии к ней в самом коде. На второй я хотел бы остановится подробнее:

команда date выводит в терминале, соответственно на экран, информацию о текщей дате и времени. Далее стоит 1, что означает - взять информацию с экрана (терминала), в нашем случае - это результат команды date и переслать (символ ">") ее в файл rezultat_raboti.log, которые находится по адресу /home/maxim/.

Если такого файла не существует, то файл будет создан с нуля. Если же он уже есть, то информация в нем будет заменена на текующею.

Для того, чтобы в существующий файл добавить информацию, не стирая его содержимого, используем такой вариант:

date 1>>/home/maxim/rezultat_raboti.log

Символ ">>" в отличие от ">", добавляет в конце файла информацию не удаляя предыдущей.

Вообще пробуем, пишем скрипты и отрабатываем свои практические знания :) До скорого! :)

BAF аватар

читай ман sed
http://citforum.ru/operating_systems/articles/sed_awk.shtml
Каждый случай уникален и взять и сказать Вам как это сделать будет в коне не верным.

Эксперт - зто человек, который совершил все возможные ошибки в очень узкой специальности.

Linux_man аватар

про sed и все схожие операторы, я хотел дальше расмотреть :) начинаем с простого и далее все сложнее и сложнее :)

Linux_man аватар

ответ на твой вопрос изложил в данной статье :)