Презентация Программирование на языке shell онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Программирование на языке shell абсолютно бесплатно. Урок-презентация на эту тему содержит всего 111 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Программирование на языке shell
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:111 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:226.00 kB
- Просмотров:86
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№1 слайд
![Программирование на языке](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img0.jpg)
Содержание слайда: Программирование на языке shell
Программа shell является одной из наиболее важных утилит OC UNIX.
shell - это не только интерпретатор команд системы UNIX ( типа command.com в DOS), но еще и язык программирования на уровне таких команд (то есть можно создавать файлы типа '.bat' как в DOS).
№2 слайд
![При рассмотрении команд в](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img1.jpg)
Содержание слайда: При рассмотрении команд в UNIX по сути использовался интерактивный режим взаимодействия с shell, в котором можно:
- ввести команду;
- сделать перадресацию (перенаправление);
- создать конвейер.
Но это только часть возможностей написания программ на языке shell, версий которых очень много:
№4 слайд
![Любая хранимая в файле](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img3.jpg)
Содержание слайда: Любая хранимая в файле команда или последовательность команд системы UNIX называется shell-программой или командным файлом.
Обычно командным файлом называют простую последовательность команд, а "shell-программой" - их более сложные структуры: с ветвлением, с циклом и др.
Существуют три способа инициализации shell для выполнения командных файлов.
№5 слайд
![Этот метод основан на](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img4.jpg)
Содержание слайда: Этот метод основан на переадресации ввода не с терминала, а с файла. Пусть файл lsdir содержит некоторые команды, тогда можно выполнить:
sh < lsdir
В первом случае есть недостаток - нельзя передавать аргументы.
Поэтому существует возможность в shell читать команды с файла, хранимые на диске. Это можно сделать просто:
sh lsdir
№6 слайд
![Здесь уже можно передавать](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img5.jpg)
Содержание слайда: Здесь уже можно передавать аргументы, если Вы их предусмотрели.
Например,
sh lsdir /bin/etc
Если в файле право доступа на выполнение не подавлено ( установить такой доступ можно командой chmod a+x lsdir ), то тогда выполнить действие по команде из файла lsdir можно просто, набрав
lsdir
Этот способ является наиболее предпочтительным и часто используется.
№7 слайд
![shell переменные Переменные в](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img6.jpg)
Содержание слайда: shell переменные
Переменные в системе shell должны начинаться с буквы, состоять из букв, цифр и знака подчеркивания. Имена переменных чувствительны к регистру. Они могут быть любой длины из заглавных, строчных букв, также содержать цифры и специальные символы. Но они не должны начинаться с цифры и не могут содержать спец символы командного интерпретатора (*, $, ?, [, ], <, >)
№8 слайд
![Присваивание значений](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img7.jpg)
Содержание слайда: Присваивание значений переменным
Значение переменным можно присвоить по команде присваивания:
ux=u.UNIX
ux=INIX
Здесь первым оператором значение u.UNIX присваивается shell-переменной "ux", а вторым - ее значение меняется на новое. Желательно команды писать строчными буквами, а переменные – всегда прописными.
Примечание: Перед знаком = и после не должно быть пробелов.
№9 слайд
![Если необходимо присвоить](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img8.jpg)
Содержание слайда: Если необходимо присвоить переменной значение, содержащее пробелы, знаки табуляции и символы новой строки, то оно должно быть заключено в кавычки:
name="Titov Vladidmir Ivanovich"
Команда readonly (только читать) помечает переменную таким образом, что ее значение не может быть изменено:
readonly ux
Теперь, если выполнить для переменной ux команду
ux=uu.UNIX
№10 слайд
![то будет выдано сообщение об](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img9.jpg)
Содержание слайда: то будет выдано сообщение об ошибке
"ux: is read only".
Поэтому, если в shell-программе значение переменной не должно меняться, то имеет смысл применить команду readonly.
Если требуется получить список переменных, которые нельзя изменить, то надо выполнить одну команду readonly без параметров.
№11 слайд
![Вновь создаваемые переменные](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img10.jpg)
Содержание слайда: Вновь создаваемые переменные локальны, то есть, эффективны только в пределах текущего экземпляра shell.
При необходимости использовать их в любых процессах, порождаемых интерпретатором, они должны быть отмечены как внешние с помощью оператора export.
Например, export ux помечает переменную ux внешней.
Отметка export существует вплоть до окончания работы shell. Список текущих внешних переменных можно получить командой export без параметров.
№12 слайд
![Использование переменных При](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img11.jpg)
Содержание слайда: Использование переменных
При использовании значения переменной перед именем переменной должен находиться символ $.
Этот символ информирует shell о том, что следующее за ним имя относится к переменной, а не к файлу или к литералу.
Значения требуемых переменных можно вывести на экран по команде echo.
№14 слайд
![Если имя переменной заключить](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img13.jpg)
Содержание слайда: Если имя переменной заключить в фигурные скобки, то её выведенное значение будет сопровождаться последовательностью символов, следующих за скобками.
Например, по команде
echo ${ux}tm
будет напечатано UNIXtm.
Конструкция ${} используется, чтобы уточнить ссылку на переменную. Эта конструкция показывает, где заканчивается имя переменной и начинается текст, который следует добавить.
№15 слайд
![Интерпретатор shell](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img14.jpg)
Содержание слайда: Интерпретатор shell автоматически присваивает значения следующим пяти встроенным переменным:
$? - значение, возвращаемое последней выполненной командой
(код возврата:
- равен 0 при успешном выполнении,
- при других неравен 0);
$$ - идентификационный номер процесса shell;
№16 слайд
![!- идентификационный номер](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img15.jpg)
Содержание слайда: #! - идентификационный номер фонового процесса, запускаемого интерпретатором shell;
$# - число аргументов позиционных параметров, передаваемых в shell;
$* - список аргументов, переданных в shell.
$- - флаги, передаваемые в shell при его запуске или установленной командой set.
№19 слайд
![После этого мы можем](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img18.jpg)
Содержание слайда: После этого мы можем:
проверить корректность указанного имени по команде echo $mydir
получить список файлов каталога по команде ls $mydir
вывести на экран файл из этого каталога по команде cat $mydir/doc_unix.txt
выполнить программу myprog, хранящуюся в этом каталоге. Для этого присвоим полное имя новой переменной. Это можно сделать двумя способами:
№22 слайд
![В строке поиска пути каталоги](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img21.jpg)
Содержание слайда: В строке поиска пути каталоги разделены двоеточиями, а для указания текущего каталога служит пустое имя.
Это пустое имя может быть задано или двумя следующими подряд двоеточиями или одним двоеточием в начале строки.
Необходимо отметить, что порядок поиска зависит от того, как каталоги расположены в строке поиска пути.
Так как строка поиска пути - это shell-переменная, то она может быть задана в интерактивном режиме.
№24 слайд
![Отмена специального смысла](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img23.jpg)
Содержание слайда: Отмена специального смысла символа
Существует три метода отмены специального смысла символа:
Путем вставки обратной косой черты (\) перед символом;
Путем заключения всех символов последовательности в одинарные кавычки (‘).
При этом теряют специальный смысл три знака:
- знак $ (доллара);
- знак ’ (кавычки);
- знак ” (двойных кавычек).
№26 слайд
![Одинарные кавычки указывают](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img25.jpg)
Содержание слайда: Одинарные кавычки ‘’ указывают командному интерпретатору сохранить и не интерпретировать текст внутри них (то есть спрятать любые спец символы от командного процессора).
Двойные кавычки “” используются, чтобы сгруппировать вместе слова для формирования параметра или предложения. Но в них возможна интерпретация переменных.
№28 слайд
![Апостроф наклонная одинарная](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img27.jpg)
Содержание слайда: Апостроф ` наклонная одинарная кавычка (расположена на клавише, что и тильда ~) применяется для замещения команды:
а) выполнить команду и сохранить результаты в переменной;
б) выполнить команду и передать ее выходные данные другой команде.
Примеры:
А) echo `ls /bin/c*`
Командный процессор видит апострофы и выполняет команду ls, а затем помещает полученную информацию в команду echo.
№31 слайд
![Для отмены специального](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img30.jpg)
Содержание слайда: Для отмены специального смысла одного символа - надо применить обратную косую черту (\).
Для группы символов это рекомендуется применять в случаях, когда Вы хотите shell-переменной присвоить последовательность слов, разделенных пробелами.
Например, в случае
ps_10 = Student Titov Vladimir
переменной будет присвоено только слово Student и выдано аварийное сообщение, что команд и программ с именами Titov и Vladimir не найдены.
№33 слайд
![Команда set Команда set](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img32.jpg)
Содержание слайда: Команда set
Команда set (установить) предназначена для вывода списка созданных переменных.
Чаще всего в нем выводится, кроме Вами созданных переменных, еще и следующие:
- TERM = vt100- тип терминала;
- PS1 = '$'- первичная подсказка, которую выводит интерпретатор shell, когда он готов принимать команду;
- PS2 = '>'- вторичная подсказка, которую выводит копия shell (то есть, вторично запущенный интерпретатор shell);
№36 слайд
![Доступ к отдельным аргументам](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img35.jpg)
Содержание слайда: Доступ к отдельным аргументам
Когда команда set применяется одновременно с подстановкой результата выполнения команды, каждый из элементов вывода при подстановке команды присваивается отдельному позиционному параметру.
Для задания подстановки результата выполнения команды в следующем примере команда date заключена в знаки апострофа ` (самая левая клавиша в цифровом ряде):
set `date`
№38 слайд
![После выполнения команды set](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img37.jpg)
Содержание слайда: После выполнения команды set `date` её результат будет присвоен последовательности параметров
$1, $2, $3, $4, $5
Теперь можно выводить на экран в любом удобном виде.
Например:
echo 'DATE: $3 $2 $1 $5 TIME: $4'
На экран будет выведено:
DATE: 29 May Sun 2011 TIME: 13:49:53
№39 слайд
![Доступ к другим позиционным](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img38.jpg)
Содержание слайда: Доступ к другим позиционным параметрам с номерами, больше девяти, происходит по команде shift (сдвиг), которая сдвигает аргументы на одну позицию влево:
($1 <= $2, $2 <= $3 и т.д.),
но имя команды в позиции $0 остается без изменения.
Интерпретатор shell воспринимает символ звездочки * как метасимвол для генерации номера любого позиционного параметра.
№40 слайд
![Путем ввода следующей команды](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img39.jpg)
Содержание слайда: Путем ввода следующей команды можно получить доступ ко всем позиционным параметрам вызова:
shift
echo $*
arg2, arg3, ....., arg11, arg12
то есть, здесь выводятся все - вплоть до последнего имеющегося параметра, тогда как команда:
echo $1 $2 $3 $4 $5 $6 $7 $8 $9
выведет только
$2 $3 $4 $5 $6 $7 $8 $9 $10
№41 слайд
![Простые условные операторы](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img40.jpg)
Содержание слайда: Простые условные операторы
Команда test | [ ]
Эта команда используется совместно с командами while, until и if.
Они запускают команду test и проверяют код возврата команды test.
Аргументы команды test образуют выражение, которое вычисляется при ее выполнении.
Если результат является true, то код возврата равен нулю, если false, то код возврата не равен нулю.
№42 слайд
![Команда является другим](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img41.jpg)
Содержание слайда: Команда [ ] является другим именем команды test.
Её синтаксис [выражение]
Эти две команды используют выражение, которое применяется для сравнения либо текста, либо числа , либо атрибутов файлов или каталогов.
Это выражение может браться из переменных, констант и операторов. Операторы могут быть строковыми, булевыми или файлами.
№44 слайд
![Опции имеют вид -r - файл](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img43.jpg)
Содержание слайда: Опции имеют вид:
-r - файл существует и его можно прочитать;
-w - файл существует и в него можно записывать;
-x - файл существует и может выполняться;
-f - файл существует и не является каталогом;
-d - файл существует и является каталогом;
-s - размер файла отличен от нуля.
№48 слайд
![Если цепочка символов](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img47.jpg)
Содержание слайда: Если цепочка символов заключена в двойные кавычки, то специальные символы сохраняют свой смысл, и пробелы трактуются как символы.
Если Вы ставите цепочку символов без кавычек, то пробелы в цепочку не включаются.
Если цепочка символов заключена в одинарные кавычки, то три специальных символа - знак доллара ($), знак одинарной кавычки (') и знак двойных кавычек (") теряют свой смысл специальных символов.
№49 слайд
![Пример Пусть Y abcd , X abcd](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img48.jpg)
Содержание слайда: Пример:
Пусть Y = ' abcd', X = abcd
а) test $Y = $X проверяет цепочки и не учитывает пробелы, поэтому результатом будет true, то есть Y=X;
б) test “$Y” = “$X“ проверяет цепочки с учетом пробелов, поэтому результатом будет false, то есть Y ≠ X;
в) test '$Y' = '$X' проверяет цепочки, состоящие из двух символов. Первая $Y, а вторая - $X. Поэтому результатом будет false, так как $Y ≠ $X.
№50 слайд
![Команды true и false Команда](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img49.jpg)
Содержание слайда: Команды true и false
Команда true формирует код возврата 0, а команда false - не ноль (чаще всего это 1).
Команды !, -o, -a, &&, II
! - инвертирует значение выражения;
-o - логическое "или";
-a - логическое "и";
Пример:
if [$# -lt 2 –a $1 –ne 1]
здесь два выражения ($# -lt 2) и ($1 –ne 1) должны быть равными true.
№51 слайд
![Команды amp amp и II](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img50.jpg)
Содержание слайда: Команды && и II позволяют контролировать выполнение.
&& означает, что следующая за ней команда будет выполнена в том случае, если предшествующая дала true, то есть код возврата, равным 0;
II означает, что команда, стоявшая после II, выполняется, если первая даст код возврата не 0 (false).
Условный оператор
Операторы && и II могут дать только простые условные структуры.
К более сложным операторам относится оператор if.
Оператор if в простом виде имеет следующий формат:
№56 слайд
![Команда case сравнивает](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img55.jpg)
Содержание слайда: Команда case сравнивает шаблон string с каждым шаблоном s1,s2... sn.
Если фиксируется совпадение, то будет выполняться список команд, который следует за совпавшим со string шаблоном.
Синтаксис команды требует двойных точек с запятой (;;) в конце каждого списка и оператора esac в конце всей команды case.
№57 слайд
![Одному списку команд может](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img56.jpg)
Содержание слайда: Одному списку команд может соответствовать несколько текстовых образцов, разделенных вертикальной чертой, указывающий на дизъюнкцию.
s1|s2|s3)
Обычный смысл вертикальной черты как конвейера в операторе case подавляется.
Последний шаблон желательно *), так как * соответствует любой последовательности.
Шаблон может содержать метасимволы shell
(* ? {…} […])
№59 слайд
![Построение циклов Цикл тип](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img58.jpg)
Содержание слайда: Построение циклов
Цикл тип while
Синтаксис такого оператора следуюший:
while while_list do do_list done
Вначале проверяется условие, а потом выполняется тело цикла.
Цикл типа until
Синтаксис такого оператора следуюший:
until until_list do do_list done
Здесь цикл выполняется, пока until_list не равно 0 (то есть, пока until_list имеет значение false).
№64 слайд
![Кроме аргументов командной](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img63.jpg)
Содержание слайда: Кроме аргументов командной строки и позиционных параметров, могут обрабатываться файлы, используя знаки подстановки:
for file in *
do echo “found $file”
done
В этом примере выводится список файлов, находящихся в данном каталоге, по одному названию файла в строке.
for file in [ab]* ….
for file in a?? ….
№68 слайд
![Если переменная level](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img67.jpg)
Содержание слайда: Если переменная level отсутствует или равна 1, то прерывается цикл 1.
Если level=2, то прерывается цикл 2,
и если level=3, то прерывается цикл 3.
Прерывание итерации
цикла continue
Эта команда приводит к прерыванию выполнения итерации ближайшего цикла, в котором находится сама команда continue.
№70 слайд
![Если переменная level имеет](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img69.jpg)
Содержание слайда: Если переменная level имеет значение 2, то выполнение будет продолжено с оператора цикла until.
Если же значение будет равно 3, то будет возобновлен внешний цикл while.
Если же переменная level не установлена или равна 1, то будет продолжаться выполнение самого внутреннего цикла.
№72 слайд
![Выход из программы exit Эта](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img71.jpg)
Содержание слайда: Выход из программы exit
Эта команда прекращает не просто текущий цикл, а всей процедуры.
После выполнения команды exit в вызывающую программу передается код возврата, равный нулю (true).
Если команда имеет аргумент, например, exit $status, то возвращается код возврата, равный значению переменной status.
№75 слайд
![Здесь все выходные данные](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img74.jpg)
Содержание слайда: Здесь все выходные данные всех команд в цикле направляются в единый файл (стандартный вывод).
for var in 1 2 3 4 5
do
echo “Processing $var” > /dev/tty
команды
done > output
Здесь по команде echo данные направлены на tty, а по всем другим командам - в единый файл (стандартный вывод).
№80 слайд
![Пример . f names ls В этом](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img79.jpg)
Содержание слайда: Пример 2.
f_names = 'ls'
В этом случае переменной f_names будут присвоены результаты выполнения команды ls.
Если в текущем каталоге было 4 файла с именами file_1, file_2, file_3, file_4, то при использовании команды для вывода
echo $f_names
на экране появится:
file_1 file_2 file_3 file_4
№82 слайд
![Вычисление выражений expr Для](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img81.jpg)
Содержание слайда: Вычисление выражений expr
Для выполнения арифметических операций в командном процессоре Борна (в Корне и С – это встроено). Результат передается на стандартный ввод.
Рассмотрим пример работы Борна:
a=1
b=$a + 1 (все аргументы отделяются пробелами)
echo $b
Будет выдано: $a + 1
№83 слайд
![То есть он текст](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img82.jpg)
Содержание слайда: То есть он текст “+1” конкатенирует с переменной a, так как все цифры в Борне – это символы.
Вычисление арифметических выражений
Команда expr рассматривает свои аргументы как выражения (арифметические или логические).
Результат вычисления передается на стандартный вывод.
№84 слайд
![При этом могут быть](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img83.jpg)
Содержание слайда: При этом могут быть использованы следующие операции:
+ - сложение
- - вычитание
* - умножение
/ - деление на цело
% - деление по модулю ( взятие остатка)
В команде все аргументы необходимо отделять пробелами.
Для предотвращения интерпретации специальных символов их надо отменять.
№86 слайд
![Сравнение цепочки символов](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img85.jpg)
Содержание слайда: Сравнение цепочки символов
Эта команда может использоваться для сравнения цепочек. Команда expr с помощью операции двоеточия (:) позволяет сравнивать цепочки символов.
Результатом выполнения такой команды является число совпадающих символов в обеих цепочках.
Если результат равен нулю, то совпадение отсутствует.
№89 слайд
![Такое сопоставление можно](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img88.jpg)
Содержание слайда: Такое сопоставление можно выполнить и с использованием переменных
M = ‘abcdef’
N = ‘abcd’
C = `expr $M : $N`
Применяя эту команду, можно определить длину цепочки:
A = "This is an experement" Присваивание цепочки символов переменной A. Так как в ней есть пробелы, то ее заключаем в двойные кавычки.
№90 слайд
![count expr A . Второй операнд](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img89.jpg)
Содержание слайда: count = `expr $A : ‘.*’`
Второй операнд .* говорит о том, что символ (.) может повторяться сколько угодно раз, а сам символ (.) означает любой символ.
Чтобы указать интерпретатору shell на специальный смысл символов (.) и (*), второй аргумент заключен в апострофы
echo $count
21
№91 слайд
![Другой возможностью команды](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img90.jpg)
Содержание слайда: Другой возможностью команды expr является ее способность выделить только часть цепочки символов с помощью конструкции \(...\). Эти круглые скобки – скобки регулярного выражения, которые используются для запоминания результата.
B = `expr $A : ‘….. \(.*\)’`
Здесь пять точек перед знаком \ соответствует пяти символам, которые следует пропустить ( включая пробел ) с начала цепочки символов.
echo $B
Результат операции:
is an experement
№92 слайд
![Условная замена переменных](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img91.jpg)
Содержание слайда: Условная замена переменных
При условной замене значение одной переменной подставляется вместо значения другой.
Интерпретатор shell реализует четыре варианта условно замены с помощью 4-х символов: -, =, ?, +:
A. {VARIABLE - OTHER}
Если переменной VARIABLE было присвоено значение, то используется оно. В противном случае используется цепочка символов OTHER, а переменная VARIABLE не меняется.
№93 слайд
![B. VARIABLE OTHER Если](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img92.jpg)
Содержание слайда: B. {VARIABLE = OTHER}
Если переменной VARIABLE было присвоено значение, то используется оно.
В противном случае перед использованием переменной VARIABLE ей присваивается значение переменной OTHER.
C. {VARIABLE ? EMPTY}
Если переменной VARIABLE было присвоено значение, то используется оно.
В противном случае на экран выводится сообщение VARIABLE : EMPTY, а процедура прекращается.
№94 слайд
![При отсутствии аргумента](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img93.jpg)
Содержание слайда: При отсутствии аргумента справа от знака ? выдается стандартное сообщение системы: VARIABLE : parametr not set
D. {VARIABLE + OTHER}
Если переменной VARIABLE было присвоено значение, то используется значение переменной OTHER.
Если же значение переменной VARIABLE не присвоено, то в качестве ее значение используется пустая цепочка символов и при этом переменной VARIABLE значение не присваивается.
№99 слайд
![Пример . x y string Величина](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img98.jpg)
Содержание слайда: Пример 3.
x = 123 y = 456
string1 = `Величина $x и $y`
string2 = "Величина $x и $y"
echo $string1
echo $string2
Величина $x и $y
(Выводятся имена переменных, так как при апострофах специальный смысл знака $ теряется)
Величина 123 и 456
(В строках с двойными кавычками происходит интерполяция переменных)
№102 слайд
![Позиционные параметры Для](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img101.jpg)
Содержание слайда: Позиционные параметры
Для идентификации позиций элементов в командной строке shell устанавливает позиционные параметры.
Чтобы интерпретатор мог их различать друг от друга, они должны разделяться пробелами.
При этом интерпретатор нумерует их, начиная с нуля.
Первый элемент (имя команды) всегда обозначается $0, первый аргумент - $1, второй - $2 и так далее до $9.
№103 слайд
![shell использует позиционных](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img102.jpg)
Содержание слайда: shell использует 10 позиционных параметров и несколько специальных переменных для работы с аргументами, которые вводятся либо через командную строку либо устанавливаются пользователем.
Пример.
grep cat enter
$0 $1 $2
shell не может одновременно обрабатывать более 10 параметров (то есть за один раз).
№108 слайд
![Дополнительные переменные](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img107.jpg)
Содержание слайда: Дополнительные переменные
командной строки.
$# - число аргументов в командной строке;
$* - все аргументы до последнего, то есть и $11, $12 и так далее;
$@- все аргументы в командной строке после того, как кавычки поставлены около каждого из них.
shift
echo $1 $2 … $9
arg2 arg3 ….arg10
№110 слайд
![Отладка shell-программ Для](/documents_5/13b0c11a539d7fcdf4041db30128dc14/img109.jpg)
Содержание слайда: Отладка shell-программ
Для установки контроля над shell-программой при вызове команды sh надо добавить одну из двух следующих опций:
-x - опция трассировки.
Эта опция необходима для просмотра команд и аргументов по мере их выполнения.
-v - опция входного контроля. Производит отображение входных строк по мере их считывания.
Скачать все slide презентации Программирование на языке shell одним архивом:
Похожие презентации
-
Введение в графику в языке программирования Turbo Pascal
-
Объектное программирование в языке С
-
FLIDE Система функционально-логического программирования на языке S-FLOGOL
-
Описание слайда: FLIDE Система функционально-логического программирования на языке S-FLOGOL
-
Основы программирования на языке Паскаль
-
Программирование на языке Си
-
Что мы знаем о русском языке
-
Программирование ветвящихся алгоритмов. Условный оператор
-
Исследование графиков функций Средствами программирования в QBasic
-
Программирование будущего в образовании: создание новой модели