UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ who
you tty2 Sep 28 07:51 rhh tty4 Sep 28 10:02
moh tty5 Sep 28 09:38 ava tty6 Sep 28 10:17
$ cat nu who | wc -l
$ sh < nu
4
$
Результат получился таким же, каким бы он был при задании команды
who | wc -l
$ sh nu
Однако досадно вводить "
sh
shell
nu
$ chmod + x nu
а затем вы можете вызывать его посредством
$ nu
С этого момента те, кто используют файл nu, не смогут определить способ его создания.
Способ, с помощью которого интерпретатор на самом деле выполняет
nu
$ sh nu
Этот процесс-потомок называется порожденным интерпретатором, т.е. процессом интерпретатора, возбужденным вашим текущим интерпретатором. Но команда
sh nu
sh < nu
nu
PATH
bin
/usr/you/bin
$ pwd /usr/you
$ mkdir bin
$ echo $PATH
:/usr/you/bin:/bin:/usr/bin
$ mv nu bin
$ ls nu
nu not found
из текущего каталога
$ nu
4
$
Конечно, ваша переменная
PATH
.profile
Существуют и другие простые команды, которые вы можете адаптировать к среде по своему вкусу и создавать таким же способом. Нам показалось удобным иметь следующие команды:
•
cs
•
what
who
ps -а
•
where
PS1
Просмотрите каталоги
/bin
/usr/bin
file(1)
3.4 Аргументы и параметры команд
Хотя команда
nu
shell
Допустим, вы хотите создать программу с именем
cx
$ cx nu
есть сокращенная запись для
$ chmod +x nu
Вы уже знаете почти все, чтобы это сделать. Вам нужен файл
cx
chmod +x filename
Единственное, что требуется выяснить — как сообщить команде
cx
cx
Если интерпретатор выполняет командный файл, то каждое вхождение
$1
$2
$9
cx
chmod +x $1
то при выполнении команды
$ cx nu
порожденный интерпретатор заменит "
$1
nu
$ echo 'chmod +x $1' >cx
$ sh cx сх
$ echo echo Hi, there! >hello
$ hello
hello: cannot execute
$ cx hello
$ hello
Hi, there!
$ mv cx /usr/you/bin
$ rm hello