Вы можете использовать shell для создания программ. Такие программы называются также процедурами shell. В этом разделе рассказывается как создавать и выполнять программы shell с помощью команд, переменных, позиционных параметров, кодов возврата.
Прежде чем создавать программы shell необходимо изучить редактор.
9.1. Программы shell 9.1.1. Создание простых программ shell ] Начнем описание создания простых программ shell, которые выполняют задачи:
печать текущего справочника;
список содержимого этого справочника;
отображение следующих сообщений на вашем терминале:
"This is the end of the shell program."
С помощью редактора создайте файл dl и введите в него строки:
pwd<CR>
ls<CR>
echo This is the end of the shell program.<CR>
Теперь вы имеете программу shell. Вы можете с помощью cat отобразить содержимое файла:
$ cat dl<CR>
pwd ls echo This is the end of the shell program. $
9.1.2. Выполнение программ shell
Выполнить shell программу вы можете с помощью команды sh. Введите:
sh dl<CR>
Когда команда dl выполняется с помощью sh, то вначале печатается имя пути текущего справочника, потом список файлов в текущем справочнике и в конце комментарий: "This is the end of the shell program."
С помощью команды chmod вы можете сделать файл исполняемым:
$ chmod u+x dl<CR>
$ ls -l<CR>
total 2 -xw------ 1 login login 3661 Nov 2 10:28 mbox -xwx----- 1 login login 48 Nov 15 10:50 dl $
Обратите внимание, что chmod включает разрешение на выполнение (+x) для пользователя (u). Теперь dl является исполняемой программой. Попытайтесь выполнить ее. Введите:
dl<CR>
9.1.3. Создание справочника bin для исполняемых файлов
Чтобы сделать shell программы доступными изо всех ваших справочников, вы можете создать справочник bin в своем регистрационном справочнике и переписать shell программы в этот справочник.
С помощью переменной PATH вы можете включить ваш справочник bin:
PATH = $PATH:$HOME/bin
9.1.4. Ограничения при именовании программ shell
shell программе вы можете дать любое имя, не совпадающее с именами системных команд. Если имя вашей программы совпадает с именем команды системы, то система будет выполнять вашу команду вместо системной.