Командный интерпретатор C-shell
2 Работа оболочки в командном режимеУже отмечалось, что csh может быть запущена в командном режиме. Более того, условные операторы и операторы цикла чаще используются именно в командных файлах. Здесь мы рассмотрим особенности такой ``командной'' работы.
Идентификация интерпретатораПроще всего осуществить запуск оболочки в режиме исполнения некоторого файла mycommand придав этому файлу атрибут исполняемости командой chmod:% chmod +x mycommand Теперь достаточно ввести с клавиатуры команду mycommand и ОС автоматически запустит shell в командном режиме исполнения данного файла. В таком пути есть один подводный камень: командных интерпретаторов в системе много и синтаксис команд у них разный. Как ОС определит нужный вам? Ответ - никак. Вы должны явно указать ОС какой интерпретатор вы хотите запускать для исполнения данного командного файла. Для этого первая строчка вашего файла должна иметь следующий стандартный вид: #! /bin/csh что и позволит ОС правильно поступить. Если же вы не задали этой информации, то ОС будет считать (по историческим причинам), что файл написан на языке Bourne shell и вы вероятнее всего получите множество сообщений о синтаксических ошибках. Заметим еще одно полезное свойство работы оболочки в командном режиме: все строки, начинающиеся со знака # будут проигнорированы. Это позволяет вносить в текст командного файла комментарии. Следующий факт позволяет вам работать с командной строкой средствами csh: при запуске командного файла mycommand автоматически становится определенной внутренняя переменная с именем argv, представляющая массив параметров командной строки. Например, следующий командный файл просто выводит все свои аргументы и их количество на терминал: #! /bin/csh # # This file simply outputs its arguments # and the total number of arguments # echo Arguments: $argv echo Number of arguments: $#argv
Явный запуск>Вы можете применить более прямой, но менее удобный способ запуска командного файла - вызвав shell с ключом -c filename. Пример:% /bin/csh -c mycommand arg1 arg2 arg3... где сразу же за ключом должно следовать имя запускаемого файла. Требуемые аргументы указываются после. Отметим, что при таком способе запуска файл может и не иметь атрибута исполняемости.
КавычкиВ синтаксисе shell кавычки играют важную роль. Есть три типа кавычек: простые ('), двойные (") и обратные (`).Простые кавычки используются для выделения текста, который оболочка должна понимать буквально. Иными словами, текст внутри простых кавычек не подлежит раскрытию и интерпретации. Пример: echo 'Dollar is $good' получим букально Dollar is $good несмотря на то, что знак доллара является метасимволом оболочки. Двойные кавычки выделяют строку символов, которую оболочка будет считать одним словом. Пример: set colors="green blue red"; echo $#colors выдаст цифру 1, что означает, что переменная colors простая, а не массив. Все что находится внутри двойных кавычек подлежит интерпретации оболочкой. Обратные кавычки позволяют представить строку, которая состоит из результата выполнения команды. Так что выражение в обратных кавычках рассматривается как команда, которую оболочка выполняет, а то, что эта команда выведет на стандартный вывод подставляется как строка на то место, где стоят эти обратные кавычки. Пример: set mytty=`tty` занесет в переменную mytty ту строку, которую выдает команда tty (а именно имя и номер текущего терминала).
|
<<< | Оглавление | Страницы: 2 1 | >>> |