Изучаем DevOps 120 дней с нуля
Различные реализации оболочки
Первая строка файла сценария оболочки начинается с "шебанг" (#!).
"#" в нотной записи называется "диез".
"!" также называется "восклицательный знак".
#! не читается как комментарий, за которым следует полный путь к интерпретатору оболочки. Этот путь сообщает операционной системе, что этот файл представляет собой набор команд, которые необходимо передать указанному интерпретатору. Первая строка может выглядеть так:
#!/bin/bash
или
#!/usr/bin/bash
зависит от твоего PATH.
Добавление комментариев: любой текст после "#" считается комментарием.
Чтобы узнать, какая оболочка в данный момент активна и каков её путь, введите приведённую ниже команду:
$ ps | grep $$
1286 pts/1 00:00:00 bash
Этот ответ показывает, что вы используете оболочку типа bash.
Затем узнаём полный путь к интерпретатору оболочки.
$ which bash
/usr/bin/bash
Этот ответ показывает полный путь выполнения оболочки интерпретатора. Убедитесь, что строка шебанг в начале вашего скрипта соответствует этому же пути выполнения.
Все файлы оболочки имеют одно и то же расширение ".sh".
Возьмите на заметку
file.sh ==== shell-скрипт
file.py ==== Python
file.js ==== JavaScript
Здесь мы будем часто использовать наш текстовый редактор. Помните "редактор vim и команду Echo", о которых мы говорили при работе с командами Linux, мы будем часто их использовать.
Позвольте мне поделиться небольшой практикой, которую я сделал сегодня.
Во-первых, используйте редактор vim для создания файла:
vim class.sh
Теперь давайте напечатаем "Hello World" с помощью редактора vim и команды echo.
#!/usr/bin/bash
echo "hello world"
~
~
./имя-файла используем для выполнения скрипта:
./class.sh
-bash: ./class.sh: Permission denied
Если вы заметили, я получил ошибку bash, которая говорит: "ДОСТУП ЗАПРЕЩЁН". Это потому, что вновь созданные файлы не могут быть выполнены. Так что же нам делать? Мы предоставим пользователю доступ для выполнения файла с помощью команды sudo chmod, которую мы изучали несколько дней назад. Теперь перейдем к выполнению скрипта.
$ sudo chmod u+x class.sh
$ ./class.sh
hello world
Да, мы успешно вывели на экран фразу "Hello World". Действительно просто, не так ли?
День 8-й изучения DevOps. Не лёгкая задача, но я решился на сложное. Если вы со мной, не сдавайтесь. День 9 загружается скоро...
Перевод с некоторыми авторскими заголовками.
Автор оригинала: Kenneth Aigbuza.