Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Передача параметров в командные файлы и специальные переменныеСодержание книги
Поиск на нашем сайте
При вызове командного файла на выполнение параметры ему могут быть переданы точно таким же образом, как и выполняемой программе. С точки зрения командного файла эти параметры являются позиционными. Символ $ является метасимволом командного процессора. Он используется, в частности, для ссылки на параметры, точнее, для получения их значений в командном файле. В командный файл можно передать до девяти параметров. При использовании где-либо в командном файле комбинации символов $i, где 0<i<10, вместо нее будет осуществлена подстановка значения параметра с порядковым номером i, т.е. аргумента командного файла с порядковым номером i. Использование комбинации символов $0 приводит к подстановке вместо нее имени данного командного файла. Рассмотрим это на примере. Пусть к командному файлу where имеется доступ по выполнению и этот командный файл содержит следующий конвейер:: who | grep $1. Если Вы введете с терминала команду: where andy, то в случае, если пользователь, зарегистрированный в ОС UNIX под именем andy, в данный момент работает в ОС UNIX, на терминал будет выведена строка, содержащая номер терминала, используемого указанным пользователем. Если же в данный момент этот пользователь не работает в ОС UNIX, то на терминал не будет выведено ничего. Команда grep производит контекстный поиск в тексте, поступающем со стандартного ввода, для нахождения в этом тексте строк, содержащих последовательности символов, переданные ей в качестве аргументов, и выводит результаты своей работы на стандартный вывод. В этом примере команда grep используется как фильтр, обеспечивающий ввод со стандартного ввода и вывод всех строк, содержащих последовательность символов andy, на стандартный вывод. В ходе интерпретации этого файла командным процессором вместо комбинации символов $1 осуществляется подстановка значения первого и единственного параметра andy. Если предположить, что пользователь, зарегистрированный в ОС UNIX под именем andy, в данный момент работает в ОС UNIX, то на терминале Вы увидите примерно следующее: $where andy andy ttyG Jan 14 09:12 $ Определим функцию, которая изменяет каталог и печатает список файлов: $function clist { > cd $1 > ls > } Теперь при вызове команды clist каталог будет изменен каталог и выведено его содержимое. Команда shift позволяет удалять первый параметр и сдвигает все остальные на места предыдущих. При использовании в командном файле комбинации символов $# вместо нее будет осуществлена подстановка числа параметров, указанных в командной строке при вызове данного командного файла на выполнение. Вот еще несколько специальных переменных, используемых в командных файлах: $* – отображается вся командная строка или параметры оболочки; $? – код завершения последней выполненной команды; $$ – уникальный идентификатор процесса, в рамках которого выполняется командный процессор; $! – номер процесса, в рамках которого выполняется последняя вызванная на выполнение в командном режиме команда; $- – значение флагов командного процессора; ${#*} – возвращает целое число – количество слов, которые были результатом $*; ${#name} – возвращает целое значение длины строки в переменной name; ${name[n]} – обращение к n-ному элементу массива; ${name[*]} – перечисляет все элементы массива, разделенные пробелом; ${name[@]} – то же самое, но позволяет учитывать символы пробелы в самих переменных; ${name:-value} – если значение переменной name не определено, то оно будет заменено на указанное value; ${name:value} – проверяется факт существования переменной; ${name=value} – если name не определено, то ему присваивается значение value; ${name?value} – останавливает выполнение, если имя переменной не определено, и выводит value, как сообщение об ошибке; ${name+value} – это выражение работает противоположно ${name-value}. Если переменная определена, то подставляется value; ${name#pattern} – представляет значение переменной name с удаленным самым коротким левым образцом(pattern); ${#name[*]} и ${#name[@]} – эти выражения возвращают количество элементов в массиве name.
|
||
|
Последнее изменение этой страницы: 2021-01-14; просмотров: 133; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.009 с.) |