Полное имя файла имеет вид


ПРОГРАММИРОВАНИЕ НА shell UNIX Учебное пособие с ВВЕДЕНИЕ Среди операционных систем особое место занимает Unix. Беспрецедентным является то, что ОС Unix может работать практически на всех выпускаемых платформах. UNIX - это стандарт де факто открытых и мобильных опрерационных систем. Это не только многозадачная, но и многопользовательская система. Вручение создателям Unix в 1983 году Международной премии Тьюринга в области программирования ознаменовало признание этой системы мировой научной computer science общественностью. Сколько операционных систем взошло и зашло на компьютерном небосклоне за время существования UNIX! ОС Unix стоит на трех китах: язык Си, файловая система, командный язык. Язык Си, на котором написана сама операционная система, с одной стороны, сочетает в себе свойства языка высокого уровня: описание типов, программные структуры if, for, while и т. ФАЙЛОВАЯ СИСТЕМА Файловая система ОС Unix имеет иерархическую древовидную структуру. В вершинах дерева находятся каталоги используют также термины - справочники, директориисодержащие списки файлов. Эти файлы в свою очередь могут быть либо снова каталогами, полное имя файла имеет вид обычными файлами, либо специальными файлами, представляющими различные утройства ввода-вывода. Он обычно содержит каталоги: bin - для наиболее используемых команд; usr - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя; dev - для полное имя файла имеет вид файлов, представляющих устройства дисплеи, диски. А также обычные выполняемые файлы: unix - ядро; boot - загрузчик. В свою очередь эти каталоги могут содержать каталоги следующего уровня. Например, каталог "usr", кроме прочего, содержит каталоги: bin - хранит дополнительные команды; games - игры; include - хранит фрагменты системных программ; lib - хранит дополнительные библиотеки. В качестве имени файла как правило может использоваться любая последоватьельность из букв, цифр и подчеркиваний. Могут использоваться и другие символы, однако ряд этих символов при использованнии в имени требует специального экранирования. Лучше не пользоваться специальными символами в именах - иногда это может привести к сложностям в обращении к таким именам, поскольку спецсимволы могут иметь в shell некоторый специальный смысл. В ряде систем длина имени ограничивается 14-ю символами этого ограничения желательно придерживаться для переносимости файловоднако в других системах допускаются более длинные имена - например, до 256 символов. В общем случае не явлются обязательными и какие-то расширения в именах. Хотя ряд команд требуют наличия некоторых фиксированных расширений в именах, например расширение ". В ОС UNIX большие и маленькие буквы воспринимаются как различные, поэтому "FILE", "file" и "File" - это три различных имени! Отдельные части файловой системы могут находиться на различных физических устройствах, например, на нескольких жестких и гибких дисках или в различных частях одного диска. Соответсвующие фрагменты поддеревья файловой системы монтируются присоединяются в единую файловую систему командой mount обычно это функция администратора системыпосле чего пользователь может обращаться к любым доступным файлам, при этом в имени никак не отражается устройство, на котором файл находится или создается т. Командный язык ОС Unix - shell оперирует с командами. Более подробно о нем разговор далее, а пока рассмотрим несколько команд работы с файловой полное имя файла имеет вид. На полное имя файла имеет вид будет выведено drwxrwxr-x 2 root 2048 nov 3 12:11 bin -rwxr-r- 1 root 861 полное имя файла имеет вид 11 20:11 boot drwxrwxr-x 2 root 1024 jan 9 11:55 dev drwxrwxr-x 1 root 4096 may 11 20:11 dos drw-r-r- 3 root 4096 nov полное имя файла имеет вид 12:01 include drwxr-xr-x 7 root 480 nov 17 12:30 lib Первая строка означает, что это каталог d-directoryгде первая триада "rwx" разрешает владельцу каталога: r - читать, w - писать и х - выполнять более точно, для файлов типа каталог w означает разрешение создавать файлы в каталоге и удалять их из него, а х разрешает доступ к файлам каталога ; членам группы, в которую входит владелец, также разрешены все три операции. Последняя триада отражает права доступа прочих пользователей, которым разрешено только читать и выполнять запрещено писать в этот файл, т. Далее, 2 - это число связей файла т. Во второй строке указан обычный текстовый файл bootкоторый прочие пользователи могут только читать. Команда "pwd" без флагов и аргументов сообщает местоположение пользователя в файловой системе. С ее помощью выводится полное имя текущего каталога. При входе в систему пользователь оказывается в определенной заранее вершине дерева. Изменить местонахождение можно командой "cd ". Создать новые каталоги можно с помощью команды mkdir Так команда "mkdir err new" создаст в данном каталоге два новых каталога с относительными именами "err" и "new". Удалить пустой не содержащий файлов каталог можно с помощью команды rmdir Удалить обычный файл можно командой rm Наиболее естественный для полное имя файла имеет вид способ создания файлов - это использование текстового редактора "ed" или экранного редактора "red" а также стандартных "vi" и "ех", или многочисленных прочих "фирменных". В ОС Unix около 200 базовых команд - инструментальных полное имя файла имеет вид, позволяющих пользователю решать многие свои проблемы, не прибегая полное имя файла имеет вид программированию на языках типа Си или использованию специальных пакетов. Командой rm файл-1 можно удалить "файл-1". Командой rmdir файл-1 можно удалить "файл-1", если это директорий, причем пустой т. Командой mv старое-имя новое-имя можно переназвать файл. Командой cp старое-имя новое-имя можно скопировать файл сохранив также старый. Очень важна команда chmod 755 расчет которая превращает файл "расчет", подготовленный полное имя файла имеет вид редакторе, в командный, иначе "расчет" при попытке вызова не будет выполнятся. Набор цифр здесь соответсвует триадам двоичных представлений восьмеричных чисел и триадам прав доступа к файлам rwx - чтение, запись, выполнение. То есть определяет, что создатель расчета может не только выполнить или распечатать текст этого расчета, но и вносить в него полное имя файла имеет вид 7:111 - rwx. А члены группы и прочие пользователи могу только читать и выполнять, но не могут изменять этот расчет 55:101101 - r-xr-x. ПРОСТЕЙШИЕ СРЕДСТВА SHELL Командный язык shell в переводе - раковина, скорлупа фактически есть язык программирования очень высокого уровня. На этом языке пользователь осуществляет управление компьютером. Обычно, после входа в систему вы начинаете взаимодействовать с командной оболочкой если угодно - она начинает взаимодействовать с вами. Признаком того, что оболочка shell готова к приему команд служит выдаваемый ею на экран промптер. Например, немалой популярностью пользуется язык cshell, есть также kshell, bashell из полное имя файла имеет вид популярных в последнее время и другие. Более того, каждый пользователь может создать свой командный язык. Может одновременно на одном экземпляре операционной системы работать с разными командными языками. То есть в набор команд оболочки интерпретатора "shell" входит команда "sh" - вызов интерпретатора "shell". Первый "shell" вызывается автоматически при вашем входе в систему и выдает на экран промтер. После этого вы можете вызывать на выполнение любые команды, в том числе и снова сам "shell", который вам создаст новую оболочку внутри прежней. Так например, если вы подготовите в редакторе файл "f1": echo Hello! Можно сделать файл "f1" выполняемым с помощью команды "chmod 755 f1". Но его можно ВЫПОЛНИТЬ, вызвав явно команду! Для этого существует специфическая команда ". Не начинайте командные файлы с символа " ", хотя естественно начинать его полное имя файла имеет вид комментария. Дело в том, что такой полное имя файла имеет вид файл в оболочке C-Shell "csh" будет интерпретирован как выполняемый в "csh", в результате будет активизирован. Начинайте командный sh-файл с пустой строки или пустого оператора ":". Можете и в графическом режиме X-Window также открыть большое число окон, а в каждом окне может быть свой свой полное имя файла имеет вид со полное имя файла имеет вид командной оболочкой. Стержневым элементом языка shell является команда. К сожалению, такая структура команды выдерживается далеко не всегда. Не всегда перед флагами ставится минус, не всегда флаги идут одним словом. Есть разнообразие и в представлении аргументов. К числу команд, имеющих экзотические форматы, относятся и такие "ходовые" команды, как сс, tar, dd, find и ряд других. Как правило но не всегдапервое слово т. Поэтому в командной строке cat cat первое слово будет расшифровано shell, как команда конкатенации полное имя файла имеет вид, которая выдаст на экран файл с именем "cat" второе словонаходящийся в текущем директории. При выполнении команды в асинхронном режиме после команды стоит один амперсенд на экран выводится номер процесса, соответствующий выполняемой команде, и система, запустив этот фоновый процесс, вновь выходит на диалог с пользователем. Эта команда ждет завершения указанного идентификатором числом фонового процесса. Если команда без параметра, то она ждет завершения всех фоновых процессов, дочерних для данного "sh". Для группировки команд также могут использоваться фигурные "{}" и круглые " " скобки. Для уничтожения фонового процесса надо знать его номер. При запуске фонового процесса на экран выдается число, соответствующее номеру идентификатору этого процесса PID. Если полное имя файла имеет вид номер забыт или надо убедиться, что этот процесс не закончен, с помощью команды ps -aux можно получить перечень идентификаторов процессов PIDимена пользователей, текущее полное имя файла имеет вид, затраченное процессами, и полное имя файла имеет вид. В выведенной таблице можно найти номера процессов, подлежащих уничтожению, например это "849" и "866". Тогда командой kill -9 866 849 можно уничтожить эти процессы. При уничтожении процессов надо вы должны иметь то же имя пользователя, какое было приписано уничтожаемым процессам или иметь имя привилегированного пользователя. Если параллельно обрабатывается или создается файл с ОДНИМ именем например, несколько пользователей вызвали в редактор один и тот же файлто в системе продолжит существование тот вариант файла, который возвращен записан в систему последним. Это частая ошибка пользователей персональных компьютеров, которые редактируют один файл параллельно с нескольких экранов. Круглые скобки " ", кроме выполнения функции группировки, выполняют и функцию вызова нового экземпляра интерпретатора shell. При выходе из круглых скобок происходит возврат в старый shell и в старый каталог. Перенаправление команд Стандартный ввод вход - "stdin" в ОС UNIX осуществляется с клавиатуры терминала, а стандартный вывод выход - "stdout" направлен на экран терминала. Существует еще и стандартный файл диагностических сообщений - "stderr", о котором речь будет чуть позже. Команда, которая может работать со стандартным входом полное имя файла имеет вид выходом, называется ФИЛЬТРОМ. Пользователь имеет удобные средства перенаправления ввода и полное имя файла имеет вид на полное имя файла имеет вид файлы устройства. Если файл "f1" до этого существовал, то он будет затерт новым. Поскольку устройства в ОС UNIX представлены специальными файлами, их можно использовать при перенаправлениях. Например, "lp" - печать; "console" - консоль; "ttyi" - i-ый терминал; "null" - фиктивный пустой файл устройство. Вернемся к перенаправлению выхода. Стандартные файлы имеют номера: 0 - stdin, 1 - stdout и 2 - stderr. Например при выполнении команды cat f1 f2 которая должна выдать на экран последовательно содержимое файлов "f1" и "f2", выдаст вам, например, следующее 111111 222222 cat: f2: No such file or directory где 111111 222222 - содержимое файла "f1", а файл "f2" отсутствует, о чем команда "cat" выдала сообщение в стандартный файл диагностики, по умолчанию, как и стандартный выход, представленный экраном. То есть результат будет аналогичен предыдущему. Для того, чтобы текстовый файл можно было использовать как команду, существует несколько возможностей. Пусть с помощью редактора создан файл с именем "cmd", содержащий одну строку следующего вида: date; pwd; ls Можно вызвать shell как команду! Введенное вами число воспринимается им не как число, а как последовательность символов! Интерпретор не проверяет, что вы ввели. Поэтому в качестве значения переменной может оказаться любая введенная абракадабра или просто нажатиекак значение пустой строки. Для обеспечения проверки формата ввода следует написать свою команду. То что здесь присутствуют пробелы между именем переменной и символом присваивания, а также между символом присваивания и значением, так это потому, что здесь мы имеем дело лишь с текстом, куда подставлены значения переменных. Там, где действительно выполняется присваивание, пробелы в этих местах НЕДОПУСТИМЫ. Для того, полное имя файла имеет вид имя переменной не сливалось со строкой, следующей за именем переменной, используются фигурные скобки. Экранирование Рассмотрим более подробно приемы экранирования, используемые в shell. Из примеров очевидно их действие: Можно в одной строке записывать несколько приcваиваний. В трех последних случаях использована своеобразная команда "eval" от evaluate - означиватькоторая в подставленной в нее в качестве аргумента команде выполняет означивание переменных если таковые имеются. В результате значение "A" остается прежним, поскольку "A" имеет значение "22". За счет означивания, которое было выполнено командой "eval" - evaluated "B" и "C" дают значения "22". Еще один пример на "eval". Манипуляции с shell-переменными Несмотря на то, что shell-переменные в общем случае воспринимаются как строки, т. Разнообразные возможности имеет команда "expr". Следует обратить также внимание на обязательные пробелы, отделяющие переменные и знаки операций. Вторая из строк не может быть длиннее первой : 4 0 0 0 И наконец, об условной замене переменныйх. Во всех этих случаях, если переменная была к этому времени определена, то ее значение используется обычным образом. Экспорт переменных В ОС UNIX существует понятие процесса. Процесс возникает тогда, когда запускается на выполнение какая-либо команда расчет. Например, при наборе на клавиатуре "р " порождается процесс расчета полное имя файла имеет вид. В свою очередь "р" может породить другие полное имя файла имеет вид. Допустим, что "р" вызывает расчеты "р1" и "р2", которые последовательно порождают соответсвующие процессы. У каждого процесса есть своя среда - множество доступных ему переменных. Например, до запуска расчета "р" уже существовала среда, в которой уже были определены некоторые переменные о стандартных переменных речь пойдет несколько позже. Запуск "р" порождает новую среду; уже в ней будут порождены расчеты "р1" и "р2". Переменные локальны в рамках процесса, в котором они объявлены, т. Для того, чтобы они были доступны и другим порождаемым процессам, надо передать их явным образом. Для этого используется встроенная команда "export". Экспортировать переменные можно и командой "set" с флагом "-a". НА ВСЯКИЙ СЛУЧАЙ заметим, что на передачу значений переменных никакого влияния не оказывает "физическое" взаимное расположение файлов расчетов в файловой системе. Параметры В командный файл могут быть переданы параметры. В shell используются позиционные параметры т. Эти параметры попадают в новую среду под стандартными именами "1" и "2". В стандартной переменной с именем "0" будет храниться имя вызванного расчета. Рассмотрим ее действие на примере. Пусть командный файл "many" вызывается полное имя файла имеет вид 13-ю параметрами many 10 20 30 40 50 60 70 80 полное имя файла имеет вид 100 110 120 130 И имеет вид many: Передача большого числа параметров. Но стал недоступным первый параметр! Это бывает очень удобно. Команда "set" без параметров выводит на терминал состояние программной среды см далее. Подстановки shell-интерпретатора Перед началом непосредственной интерпретации полное имя файла имеет вид выполнением команд, содержащихся в командных файлах, shell выполняет различные виды подстановок: полное имя файла имеет вид. Выполняются все полное имя файла имеет вид, заключенные в обратные кавычки, и на их место подставляется результат. ПОДСТАНОВКА ЗНАЧЕНИЙ ПАРАМЕТРОВ И ПЕРЕМЕННЫХ. Программная среда Каждый процесс имеет среду, в которой он выполняется. Если вы наберете команду "set" без параметров, то на экран будет выдана информация полное имя файла имеет вид ряде стандартных переменных, созданных при входе в систему и передаваемых далее всем вашим новым процессам "по наследству"а также переменных, созданных и экспортируемых вашими процессами. Конкретный вид и содержание выдаваемой информации в немалой степени зависит от того, какая версия UNIX используется и как инсталлирована система. Имена файлов разделяются здесь двоеточиями. Последовательность просмотра соответствует очередности следования имен в тропе. НО ПЕРВОНАЧАЛЬНО поиск происходит среди так называемых встроенных команд. В число встроенных команд входят наиболее часто используемые команды, например "echo", "cd", "pwd", "date". Далее поиск происходит в текущем директории ". После набора командной строки и нажатия "shell" после выполнения необходимых подстановок распознает имя, соответстующее команде и осуществляеет ее поиск в директориях, перечисленных в тропе. Если команда размещена вне этих директориев - она не будет найдена. Если присутствует несколько команд с одинаковым именем, то вызвана будет та, которая расположена в директории, просматриваемом первым. Тропу, как и прочие перемнные, можно легко менять, полное имя файла имеет вид, переставляя или полное имя файла имеет вид директории. Полное имя файла имеет вид, представленная тропа получена из "настоящей" путем сокращений и перестановок. Таковыми являются "пробел", "табуляция" и "перевод строки", поэтому здесь слева от присваивания ничего не видно и занято две строки. В данном случае в промптере будет выдаваться имя текущего директория двоеточие и пробел. Например, наберите открывающую скобку " " и после нажатия в следующей строке полное имя файла имеет вид увидите этот промптер. Если пока не знаете, что дальше делать, наберите закрывающую скобку " " - и он исчезнет. В данном случае используется не стандартный shell "sh"а "продвинутая" версия - "bash", написанная тем же автором Bourne-Again SHell. Один из способов просто изменит среду например, тропу поиска команд, вид промтера, вид оболочки, цвет экрана и т. То есть вызвать это файл в редактор и написать, что пожелаете. Тогда при каждом вашем входе в систему этот файл будет автоматически выполняться и устанавливать новую среду. Этот файл должен ОБЯЗАТЕЛЬНО размещаться в вашем ДОМАШНЕМ директории директории входа. Если вы внесли изменения в ". Для этого можно выйти и заново войти в систему, а можно воспользоваться специально для этого случая созданной командой ". Так, они не выдаются на экран простой командой "ls" - необходимо вызывать эту команду с флагом "-a". Дописать новый совй директорий "my" в тропу команд можно, записав в ". Например, export TERM PATH REDKEYS MAIL Кроме определения переменных в ". Сам интерпретатор shell автоматически присваивает значения следующим переменным параметрам :? При обращении к этим переменным т. Каждый новый расчет, выполняемый компьютером, инициирует один или несколько процессов, автоматически получающих номера по-порядку. Поэтому, используя номер процесса в качестве имени файла, можно быть уверенным, что каждый новый файл будет иметь новое имя не запишется на место уже существующего. Достоинство является и главным недостатком такого способа именования файлов. Неизвестно, какие имена будут присвоены файлам. И, если в полное имя файла имеет вид данного процесса можно найти файл "не глядя", т. Это создает дополнительные проблемы при отладке программ. ПРОГРАММНЫЕ СТРУКТУРЫ Как во всяком языке программирования в тексте на языке shell могут быть комментарии. Для этого используется символ " ". Все, что находится в строке в командном файле левее этого символа, воспринимается интерпретатором полное имя файла имеет вид комментарий. Как во всяком процедурном языке программирования в языке shell есть операторы. Ряд операторов позволяет управлять последовательностью выполнения команд. В полное имя файла имеет вид операторах часто необходима проверка условия, которая и определяет направление продолжения вычислений. С использованием этой встроенной команды формируются операторы выбора и цикла языка shell. Уже этого достаточно, чтобы предупредить о распространенной ошибке начинающих: Между скобками и содержащимся в них условием обязательно должны быть пробелы. Пробелы должны быть и между значениями полное имя файла имеет вид символом сравнения или операции как, кстати, и в команде "expr". Не путать с противоположным требованием для присваивания значений переменным. В shell используются условия различных "типов". УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ: -f file - файл "file" является обычным полное имя файла имеет вид -d file - файл "file" - каталог; -с file - файл полное имя файла имеет вид - специальный файл; -r file - имеется разрешение на чтение файла "file"; -w file - имеется разрешение на запись в файл "file"; -s file - файл "file" не пустой. Вводя с клавиатуры командные строки в первом случае получим подтверждение код завершения "0"а во втором - опровержение код завершения "1". Команда "test" дает значение "истина" т. То есть в данном случае команда "test" полное имя файла имеет вид строки символов как целые! Поэтому во всех остальных случаях "нулевому" значению соответствует пустая строка. Не забывайте о пробелах. Не злоупотреблять сложными условиями. Разумеется "список" в каждом случае должен быть осмысленный и допустимый в данном контексте. Самая усеченная структура этого оператора if условие then список fi если выполнено условие как правило это ком получен код завершения "0", то выполняется "список", иначе он пропускается. Обратите внимание, полное имя файла имеет вид структура обязательно завершается служебным словом "fi". Число "fi", естественно, всегда должно соответсвовать числу "if". Возможно использовать в условии то свойство shell, что команды могут выдавать различный код завершения. Это напоминает приемы программирования на Си. Оператор выбова "case" Оператор выбора "case" имеет структуру: case строка in шаблон список команд;; шаблон список команд;. Затем выполняется "список команд" выбранной строки. Непривычным будет служебное слово "esac", но оно необходимо для завершения структуры. Уже рассматривавшийся в связи со структурой "if" пример проще и нагляднее можно реализовать с помощью структуры "case". Для каждой альтернативы может быть выполнено несколько команд. Если эти команды будут записаны в одну строку, то символ ";" будет использоваться как разделитель команд. Значения просматриваются в порядке записи. А при вызове "case-2 HELLO" на экран будет выведено: Нет такой фирмы Коль скоро слово "case" переводится как "выбор", то это как бы намек на то, что можно эту структуру использовать для реализации простейших меню. Напишем команду "case-4", которая добавляет информацию к файлу, указанного первым параметром если параметр одинсо стандартного входа, либо если 2 параметра из файла, указанного в качестве первого параметра: case-4: Добавление в файл. Не забывайте про "done"! Фрагмент "in список значений" может отсутствовать. Результат предыдущего примера можно получить, набрав lsort f1 f2 f3 Усложним ранее рассматривавшуюся задачу под именем "case-2" определения холдинга фирмы. Теперь можно при вызове указывать произвольное количество фирм. При отсутствии в структуре оператора "for" фрагмента "in список значений", значения берутся из полное имя файла имеет вид вызывающей команды. Нет такой фирмы Полное имя файла имеет вид Not-Net Еще пример. Переменныя "i" принимает здесь пять значений: 1, 2, 3, 4, 5, но внутри цикла эта переменная отсутствует и поэтому ее значение никакой роли не играет и ни чего не меняет. С таким же полное имя файла имеет вид переменная "i" могла принимать значения, скажем ф о к у са в результате точно также было бы пять раз повторено одно и то же вычисление содержимого цикла без изменений. Здесь, после "for i. Первый представляет параметры, как строку, а второй, как совокупность слов. Оператор цикла с истинным условием "while" Структура "while", также обеспечивающая выполнение расчетов, предпочтительнее тогда, когда неизвестен заранее точный список значений параметров или этот список должен быть получен в результате полное имя файла имеет вид в цикле. Оператор цикла "while" имеет структуру: while условие do список команд done где "while" - служебное слово определяющее тип цикла с истинным условием. Список полное имя файла имеет вид в теле цикла между "do" и "done" повторяется до тех пор, пока сохраняется истинность условия т. При первом входе в цикл условие должно выполняться. Как и вообще в жизни, можно реализовать то же самое и сложнее. Расчет "рr-br" приведен для иллюстрации бесконечного цикла использования команды "break", которая обеспечивает прекращение цикла. Если "n" отсутствует, то это эквивалентно "break 1". Она также может быть с параметром. Например, "continue 2" означает выход на начало второго если считать из глубины вложенного цикла. Эта команда может использоваться не только в циклах. Даже в линейной последовательности команд она полное имя файла имеет вид быть полезна при отладке, чтобы прекратит выполнение текущего расчета в заданной точке. Оператор цикла с ложным условием "until" Оператор цикла "until" имеет структуру: until условие do список команд done где "until" - служебное слово определяющее тип цикла с ложным условием. Список команд в теле цикла между "do" и "done" повторяется до тех пор, пока сохраняется ложность условия или цикл не будет прерван изнутри специальными командами "break", "continue" или "exit". При первом входе в цикл условие не должно выполняться. Отличие от оператора "while" состоит в том, что условие цикла проверяется на ложность на ненулевой код завершения последней команды тела цикла проверяется ПОСЛЕ каждого в том числе и первого! Программистов, знакомых с операторами "until" в других языках может вначале сбивать такая семантика этого оператора. После этого выдается "enough" и команда "break" перкращает выполнение цикла. Другой пример "Ожидание полдня" иллюстрирует возможность использовать в условии вычисления. Команда "date" выдает текущую дату и время. Команда "grep" получает эту информацию через конвейер и пытается совместить заданный шаблон "12:00:" с временем, выдаваемым командой "date". При несовпадении "grep" выдает код возврата "1", что соответсвует значению "ложь", и цикл "выполняет ожидание" в течение 30 секунд, после чего повторяется выполнение условия. В полдень возможно с несколькими секундами произойдет сравнение, условие станет истинным, "grep" выдаст на экран соответсвующую строку и работа цикла закончится. Пустой оператор Пустой оператор имеет формат : Ничего не делает. Например, в конструкции "while :" или ставить в начале командного файла, чтобы гарантировать, что файл не будет принят за выполняемый файл для "csh". Функции в shell Функция позволяет подготовить полное имя файла имеет вид команд shell для последующего выполнения. Описание функции меет вид: имя { список команд } после чего обращение к функции происходит по имени. При выполнении функции не создается нового процесса. Она выполняется в среде соответсвующего процесса. Аргументы функции становятся ее позиционными параметрами; имя функции - ее нулевой параметр. Обработка прерываний "trap" Бывает необходимо защитить выполнение программы от прерывания. Наиболее часто приходится встречаться со следующими прерываниями, соответсвующими сигналам: 0 - выход из интерпретатора, 1 - отбой отключение удаленного абонента2 - прерывание от Del, 9 - уничтожение не перехватывается15 - окончание выполнения. Для защиты от прерываний существует команда "trap", имеющая формат: trap 'список команд' сигналы Если в системе возникнут прерывания, чьи сигналы перечислены через пробел в "сигналы", то будет выполнен "список команд", после чего если в списке команд не была выполнена команда "exit" управление вернется в точку прерывания и продолжится выполнение командного файла. Здесь, после удаления файлов будет осуществлен выход "exit" из командного файла. Команда "trap" позволяет и просто игнорировать прерывания, если "список команд" пустой. Тем более, что описание даже стандартных команд в силу очень больших об'емов здесь отсутствует. Список литературы содержит некоторые из быстро растущего перечня книг на русском языке. Введение в операционную систему UNIX. Полное имя файла имеет вид по операционной системе UNIX. Введение в операционную систему UNIX. Введение в операционную систему UNIX. Операционная система UNIX: Инструментальные средства программирования. Инструментальная мобильная операционная система ИНМОС. Мобильная операци- онная система. UNIX - Универсальная среда програм- мирования.

комментарий:

комментарий
 

Чаще всего проблем нет, но они могут возникнуть; включение новой файловой системы в общее пространство имен.