Руководство для начинающих по созданию сценариев оболочки 3: более основные команды и цепочки

Оглавление:

Руководство для начинающих по созданию сценариев оболочки 3: более основные команды и цепочки
Руководство для начинающих по созданию сценариев оболочки 3: более основные команды и цепочки

Видео: Руководство для начинающих по созданию сценариев оболочки 3: более основные команды и цепочки

Видео: Руководство для начинающих по созданию сценариев оболочки 3: более основные команды и цепочки
Видео: Как добавить ярлык программы на Рабочий стол в Windows 8.1 - YouTube 2024, Апрель
Anonim
Вы узнали, как создавать скрипты, использовать аргументы и строить для циклов. Теперь давайте рассмотрим некоторые более простые команды, манипулирование текстовыми файлами и перенаправление ввода и вывода на файлы и другие команды.
Вы узнали, как создавать скрипты, использовать аргументы и строить для циклов. Теперь давайте рассмотрим некоторые более простые команды, манипулирование текстовыми файлами и перенаправление ввода и вывода на файлы и другие команды.

Некоторые базовые полезные команды

Мы уже предоставили вам базовую разбивку сценариев оболочки и примерный контур для циклов, но не забудьте проверить эти статьи, если вы до сих пор пропустили наш совет по сценариям оболочки.

Командная строка замечательна по многим причинам, и перенаправление является одним из самых выдающихся. Если вам нужно было записать и воспроизвести вывод каждой команды, чтобы предпринять дальнейшие действия или использовать это для чего-то другого, тогда мы все давно сошли с ума. Перенаправление позволяет использовать этот вывод и сохранять его или сразу использовать в качестве ввода для другой команды. Мы также можем использовать файлы в качестве входов для других команд.

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

эхо - Эта команда просто печатает (отображает) всю полноту своего аргумента в командной строке как вывод

echo argument with spaces

Как вы можете видеть, специальные символы должны быть «экранированы», поэтому их обрабатывают нормально. Это делается с помощью обратной косой черты () перед символом. Лучше использовать кавычки. Команда echo также работает с переменными.
Как вы можете видеть, специальные символы должны быть «экранированы», поэтому их обрабатывают нормально. Это делается с помощью обратной косой черты () перед символом. Лучше использовать кавычки. Команда echo также работает с переменными.
Как вы можете видеть, одинарные и двойные кавычки ведут себя по-разному. Для получения дополнительной информации проверьте, в чем разница между одиночным и двойным кавычками в оболочке Bash?
Как вы можете видеть, одинарные и двойные кавычки ведут себя по-разному. Для получения дополнительной информации проверьте, в чем разница между одиночным и двойным кавычками в оболочке Bash?

кошка - Эта команда отображает содержимое текстовых файлов в качестве вывода.

cat file_to_be_read

Предположим, мы создаем этот текстовый файл в nano:

Когда мы используем команду cat в файле, мы можем видеть, что это результат.
Когда мы используем команду cat в файле, мы можем видеть, что это результат.
grep - это одна из самых мощных и полезных команд, доступных вам в Linux. Это означает, что Global / Regular Expression Print. Он просматривает файл и печатает любую строку, которая соответствует определенному шаблону. Поскольку этот шаблон основан на «регулярном выражении», краткая строка может дать множество шаблонов, которые должны быть сопоставлены. Ибо нет, однако, вы можете ввести крачку для поиска.
grep - это одна из самых мощных и полезных команд, доступных вам в Linux. Это означает, что Global / Regular Expression Print. Он просматривает файл и печатает любую строку, которая соответствует определенному шаблону. Поскольку этот шаблон основан на «регулярном выражении», краткая строка может дать множество шаблонов, которые должны быть сопоставлены. Ибо нет, однако, вы можете ввести крачку для поиска.

grep pattern file

Уверяю вас, Grep может сделать больше, но пока давайте придерживаться более простых вещей.
Уверяю вас, Grep может сделать больше, но пока давайте придерживаться более простых вещей.

Перенаправление выходов

Чтобы перенаправить вывод команды в файл, мы используем специальный символ - символ большего (>).

Давайте изменим наш список, не так ли? Введите следующую команду:

echo pepperoni > list

Вы можете видеть, что эхо не отображает линию больше, и когда мы смотрим на содержимое файла «списка», мы видим, что мы там повторяем.
Вы можете видеть, что эхо не отображает линию больше, и когда мы смотрим на содержимое файла «списка», мы видим, что мы там повторяем.

Также обратите внимание, что предыдущее содержимое «списка» было удалено. Попробуйте снова:

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

echo yellow peppers >> list

Легко! Давайте используем эту команду для создания большего списка, не так ли?
Легко! Давайте используем эту команду для создания большего списка, не так ли?
Мы идем. Я думаю, вы можете понять, почему так много вундеркиндов используют командную строку для создания списков дел и т. П., Но это становится еще лучше.
Мы идем. Я думаю, вы можете понять, почему так много вундеркиндов используют командную строку для создания списков дел и т. П., Но это становится еще лучше.

Давайте возьмем вывод команды и поместим ее в файл:

ls –al / > ~/rootlist

Создание списков файлов, их редактирование вниз, а затем выполнение команд на тех, которые вы хотите, никогда не было проще. И, хотя мы делаем эти основные функции в командной строке, они хорошо работают и в скриптах.
Создание списков файлов, их редактирование вниз, а затем выполнение команд на тех, которые вы хотите, никогда не было проще. И, хотя мы делаем эти основные функции в командной строке, они хорошо работают и в скриптах.

Трубопроводы или цепочки

Трубопровод назван так потому, что он использует канал, (|; общий с ключом на большинстве клавиатур). По сути, он берет вывод одной команды и напрямую передает ее другому. Вы можете создать длинные цепочки команд, чтобы получить очень специфический желаемый результат таким образом, и это очень удобно для команд, таких как grep.

Image
Image

Он действует как «>», за исключением того, что он может быть привязан несколько раз, и его эффект более общий, поскольку ему не нужно проходить через текстовый файл.

Как вы можете видеть, grep чувствителен к регистру. Вы можете использовать флаг «-i», чтобы игнорировать его.

Image
Image

Перенаправление входов

Вы также можете принимать входные данные от файлов для команд, используя символ меньше (<).

cat < list

«Это ничем не отличается от использования аргумента!» - скажете вы. Ну, в этом случае вы были бы правы. Если перенаправление ввода действительно пригодится, это объединение команд вместе.
«Это ничем не отличается от использования аргумента!» - скажете вы. Ну, в этом случае вы были бы правы. Если перенаправление ввода действительно пригодится, это объединение команд вместе.

Предположим, мы хотим отфильтровать любое слово, которое имеет «pep» в нем из нашего текущего «списка», в новый файл под названием «revisions».

grep pep < list > revisions

Давайте повторим эту команду и добавим некоторую сортировку.
Давайте повторим эту команду и добавим некоторую сортировку.

grep pep < list | sort > revisions

Это будет использовать «pep» в качестве поискового термина из «списка» входного файла, сортировать его в алфавитном порядке (все верхние регистры, за которым следуют все строчные условия), а затем выводить его в файл «ревизий».
Это будет использовать «pep» в качестве поискового термина из «списка» входного файла, сортировать его в алфавитном порядке (все верхние регистры, за которым следуют все строчные условия), а затем выводить его в файл «ревизий».

Чтобы проиллюстрировать команду sort, давайте рассмотрим следующий пример:

Как вы можете видеть, добавление флага -f к команде sort позволяет игнорировать регистр. Это упрощает для нас алфавитирование строк в текстовых файлах и игнорирование капитализации, когда это не имеет значения.
Как вы можете видеть, добавление флага -f к команде sort позволяет игнорировать регистр. Это упрощает для нас алфавитирование строк в текстовых файлах и игнорирование капитализации, когда это не имеет значения.

Простой скрипт

Давайте создадим скрипт, который имеет следующую форму:

script searchterm listfile

Он примет этот термин и будет использовать grep для поиска в файле списка, сортировки результатов и последующего вывода их в другой файл.

Вот каталог, в котором мы будем тестировать скрипт:
Вот каталог, в котором мы будем тестировать скрипт:
Image
Image

И мы можем создать список того, что здесь, а затем запустить скрипт.

Вот так! Чем больше вы изучаете правила регулярных выражений, тем более точно вы можете собрать команду поиска. И все, что действительно в кавычках, может быть заменено вашим первым аргументом!
Вот так! Чем больше вы изучаете правила регулярных выражений, тем более точно вы можете собрать команду поиска. И все, что действительно в кавычках, может быть заменено вашим первым аргументом!

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

  • tsort - более совершенная функция топологической сортировки
  • tr - позволяет сопоставлять определенные символы другим символам и транскрибировать между ними.
  • uniq - удаляет любые не уникальные (чтение: дубликат)
  • awk - действительно продвинутый язык / функция обработки текста, который может использоваться для разделения полей в именах файлов
  • cut, paste / join - команды, полезные для выделения полей из текстовых файлов и добавления новых данных в столбцы
  • look - поиск, подобный grep, но использует файл словаря (который может быть задан пользователем) для поиска
  • wc - позволяет вам подсчитывать количество слов, количество строк, количество символов и т. д.

Сегодня мы рассмотрели некоторые основы, которые могут быть полезны в командной строке, как и в сценариях. Текстовые данные часто лежат в основе того, что мы используем ежедневно, поэтому возможность работать с ним, искать его и манипулировать им является ключевым.

Каковы некоторые из ваших любимых сценариев? Есть ли специальные скрипты для текстовых файлов? Поделитесь тем, что вы знаете в комментариях!

Рекомендуемые: