Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 96; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.73.167 (0.006 с.) |