
- •41. Программные семафоры с внутренним счетчиком в posix
- •Int sem_init(sem_t *sem, int pshared, int value);
- •42. Программные семафоры с внутренним счетчиком в System V
- •43. Проблема тупиков при взаимодействии программных единиц
- •44. Средства реализации виртуальной памяти; страничная переадресация.
- •45. Средства реализации виртуальной памяти; стратегия подкачки страниц
- •46. Системные функции распределения памяти в Unix
- •Void* malloc(size_t nbytes)
- •Void* MapViewOfFile(handle hFileMappingObject, dword DesiredAccess, dword OffsetHigh, dword OffsetLow, dword size)
- •49. Совместное использование оперативной памяти в Unix
- •Int shmget(key_t key, int size, int flag),
- •53. Программный опрос файловой системы в Windows
- •54. Программный опрос файловой системы в Unix
- •Int closedir(dir* dirptr),
- •Void rewinddir(dir* dirptr),
- •55. Получение информации об ошибках выполнения системной функции Windows
- •56. Получение информации об ошибках выполнения системной функции Unix.
- •Int имяфункции(список_аргументов),
- •Void perror(const char *s)
- •57. Групповое выполнение и фоновый запуск команд в командных оболочках ос.
- •59. Использование переменных в командных оболочках ос.
- •60. Ввод и вывод данных в командных сценариях.
60. Ввод и вывод данных в командных сценариях.
Чтобы работать в Linux с командами, вовсе не обязательно быть программистом. После знакомства с различными программами, когда вы освоите работу с командной строкой и обнаружите, что постоянно вводите в командную строку одни и те же выражения, сохраните эти командные строки в виде текстовых файлов и превратите их в сценарии (scripts) оболочки. В своей простейшей форме сценарий оболочки представляет собой одну или несколько наиболее часто используемых командных строк.
Рассмотрим следующий пример:
# rxvt -geometry 80*11+803+375 -bg write -fg black -e pico &
# rxvt -geometry 80*24+806+2 -bg write -fg black -e pine &
Эти две командные строки запускают редактор pico и почтовую программу pine в двух окнах терминала rxvt на втором рабочем столе экрана с разрешением 800*600. Можно с уверенностью сказать, что ввод подобных команд всякий раз, когда у вас возникает необходимость запустить эти программы - удовольствие небольшое. Хотя вам ничто не мешает после перехода к другому рабочему столу вручную запустить окна терминала, все же на установку правильных размеров окон и запуск программ потребуется определенное время. Вы можете, однако, преобразовать эти команды в исполняемые файлы, сначала сохранив их в виде файлов с помощью редактора, а затем применив к ним команду chmod:
# chmod +x d2
Теперь, когда у вас возникнет необходимость запустить эти программы, все что вам нужно сделать - ввести в командную строку выражение, проще которого вряд ли можно придумать: # d2
Вы можете обеспечить этой новой команде большую гибкость за счет использования переменных оболочки $1 и $2, которые представляют первый и второй аргументы командной строки в команде оболочки. Отредактируйте созданный вами файл и замените имена программ этими переменными:
# rxvt -geometry 80*11+803+375 -bg write -fg black -e $2 &
# rxvt -geometry 80*24+806+2 -bg write -fg black -e $1 &
Обратите внимание, что порядок переменных не имеет значения. Теперь при запуске команды вы можете подставить в командную строку имена программ, как в следующем примере:
# db2 pine pico
Результат этой команды точно такой, как и предыдущей, с той разницей, что теперь вы имеете возможность запускать в терминальных окнах практически любые программы.
С помощью оболочки можно быстро построить простые программы для решения насущных задач.