Скрипты

Скрипт (официально по-русски надо писать не "скрипт", а "сценарий", но так почти никто не говорит) — это текстовый файл, который операционная система понимает как последовательно выполняемые команды. Каждая команда в скрипте приводится в виде отдельной строки. Скрипт, который будет работать под Linux, необходимо сохранить с признаками концов строк, принятыми в Linux (<Shift+F2> в редакторе Far manager или программа noreturn пакета EMBOSS). Для того, чтобы сделать ваш скрипт исполняемым, надо изменить тип файла с помощью команды chmod. Запускается скрипт c указанием пути к нему (если скрипт лежит в текущей директории, то для указания пути достаточно поставить перед именем файла точку и косую черту, без пробелов).

Пример

Предположим, в текстовом файле sonets.txt находится текст всех сонетов Шекспира (на английском, разумеется, языке). Предположим, вам захотелось узнать, сколько среди всех сонетов строк, содержащих те или иные союзы ("and", "or", "but" и т.п.). Вы знаете, что команда
 grep -c ' and ' sonets.txt
выдаст вам на stdout число строк, содержащих слово "and", окружённое слева и справа пробелами.

Чтобы решить эту задачу, вы создаёте текстовый файл wordcount.sh, содержащий строки вида:
grep -c ' and ' sonets.txt >> wordcount.txt
grep -c ' or ' sonets.txt >> wordcount.txt
grep -c ' but ' sonets.txt >> wordcount.txt
...

Если вы создавали его в Far manager, то не забудьте перед выходом нажать <Shift+F2> и выбрать в меню "Unix format". Если файл со скриптом создан каким-то другим способом, то имеет смысл (на машине, где установлен EMBOSS, например, на kodomo), выполнить команду

 noreturn wordcount.sh wc_linux.sh
и дальнейшие действия производить уже с файлом wc_linux.sh.

Теперь надо сделать файл со скриптом исполняемым:

 chmod +x wordcount.sh
и можно его запускать:
 ./wordcount.sh
В результате в вашей директории образуется файл wordcount.txt, в котором будет содержаться колонка чисел. Поставив её (в Excel, например) рядом с колонкой слов, которые вы считали, можно до конца жизни медитировать над столь замечательным научным результатом...

Совет по написанию скриптов с однотипными строками

В приведённом примере (как и в том скрипте, который вам предстоит писать в процессе выполнения задания), строки отличаются только исходными данными (в примере — словами, число строк с которыми мы считаем). Такой скрипт удобно делать с помощью Excel.

На отдельном листе Excel создайте столбец с теми самыми данными (пусть это будет столбец A). Рядом с первой ячейкой столбца (например, в ячейке B1) пишите формулу:

=CONCATENATE("grep -c ' ", A1, " ' sonets.txt >> wordcount.txt")
то есть функцией CONCATENATE ("СЦЕПИТЬ") вы создаёте строку, сцепляя 1) то, что будет присутствовать в строке вашего скрипта перед данными; 2) сами данные; 3) то, что должно стоять после данных.

Теперь остаётся распространить формулу на такое число ячеек вниз, сколько ячеек в столбце A занимают данные, а затем скопировать заполненную часть столбца B в редактор Far manager. Скрипт готов, остаётся сохранить его как UNIX-текст (<Shift+F2>), сделать исполняемым и можно запускать.