Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Превращение сценария в исполняемый файл
Теперь, когда у вас есть файл сценария, его можно выполнить двумя способами. Более простой путь — запустить оболочку с именем файла сценария как параметром:
$ <b>/bin/sh first</b>
Этот вариант будет работать, но гораздо лучше запускать сценарий, введя его имя и тем самым присвоив ему статус других команд Linux. Сделаем это с помощью команды chmod, изменив режим файла (file mode) и сделав его исполняемым для всех пользователей:
$ <b>chmod +х first</b>
Конечно, превращение файла в исполняемый — это не единственный вариант применения команды
chmod
man chmod
После этого вы можете выполнять файл с помощью команды
$ <b>first</b>
При этом может появиться сообщение об ошибке, говорящее о том, что команда не найдена. Почти наверняка причина в том, что в переменной
PATH
PATH=$PATH:.
./first
Указание пути, начинающегося с символов
./
Не следует вносить подобные изменения в переменную
PATH
./
После того как вы убедитесь в корректной работе вашего сценария, можете переместить его в более подходящее место, чем текущий каталог. Если команда предназначена только для собственных нужд, можете создать каталог bin в своем исходном каталоге и добавить его в свой путь. Если вы хотите, чтобы сценарий выполняли другие пользователи, можно использовать каталог /usr/local/bin или другой системный каталог как удобное, хранилище для вновь созданных программ. Если в вашей системе у вас нет прав суперпользователя, можно попросить системного администратора скопировать ваш файл для вас, хотя сначала, возможно, придется убедить его в неоспоримых достоинствах вашего файла. Для того чтобы установить владельца и права доступа к файлу, администратору придется задать такую последовательность команд:
# <b>ср first /usr/local/bin</b>
# <b>chown root /usr/local/bin/first</b>
# <b>chgrp root /usr/local/bin/first</b>
# <b>chmod 755 /usr/local/bin/first</b>
Обратите внимание на то, что в данном случае вместо изменения определенной части флагов прав доступа вы используете абсолютную форму команды chmod, потому что точно знаете, какие требуются права доступа.
Если захотите, можно применить более длинную, но более понятную форму команды
chmod
# <b>chmod u=rwx, go=rx /usr/local/bin/first</b>
Более подробную информацию можно найти в справочном руководстве команды
chmod
В ОС Linux вы можете удалить файл, если у вас есть право записи в каталог, содержащий этот файл. Для безопасности убедитесь в том, что право записи в каталоги, содержащие файлы, которые вы хотели бы защитить, есть только у суперпользователя. В этом есть смысл, потому что каталог — это всего лишь еще один файл, и наличие права записи в файл каталога позволяет пользователям добавлять и удалять имена.
Синтаксис командной оболочки
Теперь, когда мы рассмотрели пример простой программы командной оболочки, пришло время углубиться в функциональные возможности программирования средствами командной оболочки. Командная оболочка — довольно легкий для изучения язык программирования, в немалой степени потому, что легко проверить в интерактивном режиме работу небольших фрагментов программы, прежде чем собирать их в большие сценарии. Командную оболочку bash можно использовать для создания довольно больших структурированных программ. В нескольких последующих разделах мы обсудим такие темы:
□ переменные: строки, числа, переменные окружения и параметры;
□ условия: булевы или логические выражения (Booleans);
□ управление выполнением программы:
if
elif
for
while
until
case
□ списки;
□ функции;
□ команды, встроенные в командную оболочку;
□ получение результата выполнения команды;
□ встроенные (here) документы.
Переменные
В командной оболочке переменные перед применением обычно не объявляются. Вместо этого вы создаете их, просто используя (например, когда присваиваете им начальное значение). По умолчанию все переменные считаются строками и хранятся как строки, даже когда им присваиваются числовые значения. Командная оболочка и некоторые утилиты преобразуют строки, содержащие числа, в числовые значения, когда нужно их обработать должным образом. Linux — система, чувствительная к регистру символов, поэтому командная оболочка считает
foo
Foo
FOO
В командной оболочке можно получить доступ к содержимому переменной, если перед ее именем ввести знак
$
$
echo
$
Вы можете увидеть это в действии, если в командной строке будете задавать и проверять разные значения переменной
salutation
$ <b>salutation=Hello</b>