UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$ who | 2drh tty0 Sep 28 21:23 cvw tty5 Sep 28 21:09dmr tty6 Sep 28 21:10 scj tty7 Sep 28 22:11you tty9 Sep 28 23:00 jib ttyb Sep 28 19:58$Реализация команд
23$ ln 2 3; ln 2 4; ln 2 5; ln 2 6$ ls -l [1-9]167222 -rwxrwxrwx 5 you 51 Sep 28 23:21 2167222 -rwxrwxrwx 5 you 51 Sep 28 23:21 3167222 -rwxrwxrwx 5 you 51 Sep 28 23:21 4167222 -rwxrwxrwx 5 you 51 Sep 28 23:21 5167222 -rwxrwxrwx 5 you 51 Sep 28 23:21 6$ ls /usr/you/bin | 52 3 4 411 56 cx lc m nuwhat where$ cat 5# 2, 3, ...: печать в n столбцовpr -$0 -t -11 $*$Флаг
-t-lnn$03.5 Результат выполнения программы в качестве аргумента
Теперь перейдем от аргументов команд для командного файла к порождению аргументов. Конечно, расширение имен файлов с помощью метасимволов, подобных
*`...`$ echo At the tone the time will be `date`.At the tone the time will be Thu Sep 29 00:02:15 EDT 1983.$Небольшое изменение показывает, что
`...`"..."$ echo "At the tone> the time will be `date`."At the tonethe time will be Thu Sep 29 00:03:07 EDT 1983.$В качестве другого примера предположим, что вам необходимо послать почту группе людей, которые зарегистрированы под именем, хранящимся в файле
mailinglistmailinglistmail$ mail `cat mailinglist` <letterЗапуск команды
catmailmailНесколько иной подход требуется для преобразования файла
mailinglist$ cat mailinglistecho don whr ejs mb $ cx mailinglist$ mailinglistdon whr ejs mb$Теперь посылка писем адресатам из списка реализуется командой:
$ mail `mailinglist` <letterДобавив еще одну программу, получим возможность даже изменять список пользователей в диалоге. Такая программа называется
pick$ pick аргументы...и выдает свои аргументы по одному, ожидая каждый раз ответа. Результатом действия команды
pickyyes$ pr `pick *.с` | lprЗдесь вначале выдаются имена файлов, оканчивающиеся на
.сprlprpickДопустим, вы используете второй вариант команды
mailinglistdonmb$ mail `pick `mailinglist`` <letterdon? ywhr?ejs?mb? y$Обратите внимание на вложенные знаки слабого ударения; обратная дробная черта запрещает обработку вложенной конструкции
`...`Что произойдет, если опустить символы обратной дробной черты в команде
$ echo `echo `date``Попробуйте ввести
$`date`и объясните результат.
Команда
$ grep -l pattern filenamesперечисляет имена файлов, которые соответствуют шаблону, но больше ничего не выдает. Попытайтесь выполнить разные вариации такого задания:
$ command `grep -l pattern filenames`
