Будучи системным администратором, вы, скорее всего, написали несколько сценариев Bash, чтобы автоматизировать свою работу. Например, вам может понадобиться запустить сценарии Bash для резервного копирования или для регистрации событий, происходящих на вашем сервере. Сценарии Bash, как и сценарии, написанные на других языках программирования, можно запускать самыми разными способами.
В этом руководстве мы рассмотрим все способы запуска сценариев Bash в Linux.
Предварительные условия
Прежде чем запускать сценарий, необходимо, чтобы он был исполняемым.
Чтобы сделать скрипт исполняемым в Linux, используйте команду "chmod" и назначьте файлу права "execute".
Bash скрипт не обязательно должен иметь расширение sh, имя файла может быть просто "script". Расширение используется для понимания что это имя файла.
Вы можете использовать двоичную или символьную нотацию для того, чтобы сделать его исполняемым.
1 | chmod u+x [script.sh] |
1 | chmod 744 [script.sh] |
Если вы не являетесь владельцем этого файла, вам придется убедиться, что вы принадлежите к нужной группе или что права доступа предоставлены группе "другие" в вашей системе.
Некоторые дистрибутивы выделяют ваш файл другим цветом, если ваш файл является исполняемым.
Теперь, когда ваш файл стал исполняемым, давайте посмотрим, как можно легко запустить ваш Bash-скрипт.
Запуск сценария Bash из пути к сценарию
Чтобы запустить сценарий Bash в Linux, просто укажите полный путь к сценарию и укажите аргументы, которые могут понадобиться для запуска вашего сценария Bash.
1 | /path/to/script.sh [arg1] [arg2] ... [argn] |
В качестве примера, предположим, что у вас есть сценарий Bash, расположенный в вашем домашнем каталоге.
Чтобы выполнить этот сценарий, вы можете указать полный путь к сценарию, который вы хотите запустить.
Абсолютный путь
1 | /home/user/script.sh |
Абсолютный путь с аргументами
1 | /home/user/script.sh "param1" param2" |
В качестве альтернативы вы можете указать относительный путь к сценарию Bash, который вы хотите запустить.
Относительный путь
1 | ./script.sh |
Относительный путь с аргументами
1 | ./script.sh "param1" param2" |
Отлично, вы узнали, как можно легко запустить сценарий Bash в вашей системе.
Запуск сценария Bash с помощью bash
Для того чтобы запустить сценарий Bash в вашей системе, необходимо использовать команду "bash" и указать имя сценария, который вы хотите выполнить, с необязательными аргументами.
1 | bash [script] |
В качестве альтернативы можно использовать команду "sh", если в вашем дистрибутиве установлена утилита sh.
В качестве примера, предположим, что вы хотите запустить сценарий Bash с именем "script.sh".
1 | bash script.sh |
Выполнение сценария Bash с помощью sh, zsh, dash
В зависимости от вашего дистрибутива, в вашей системе могут быть установлены другие утилиты оболочки.
"Bash" - это интерпретатор командной оболочки, установленный по умолчанию, но вы можете захотеть выполнить свой сценарий с помощью других интерпретаторов.
Чтобы проверить, установлен ли интерпретатор командной оболочки в вашей системе, используйте команду "which" и укажите нужный вам интерпретатор.
1 | which sh |
Когда вы определите интерпретатор командной оболочки, который хотите использовать, просто вызовите его, чтобы легко запустить ваш сценарий.
Запуск сценария Bash из любого места
В некоторых случаях вам может понадобиться запускать сценарии Bash, где бы вы ни находились.
Чтобы запустить сценарий Bash из любой точки системы, необходимо добавить его в переменную окружения PATH.
1 | export PATH="[путь_к_скрипту]:$PATH" |
Теперь, когда путь к скрипту добавлен в PATH, вы можете вызывать его из любой точки вашей системы.
1 | script.sh |
В качестве альтернативы, вы можете изменить переменную окружения PATH в вашем файле .bashrc и использовать команду "source", чтобы обновить текущее окружение Bash, откройте файл:
1 | sudo nano ~/.bashrc |
и добавить ответствующую строку
1 | export PATH="[путь_к_скрипту]:$PATH" |
Выйдите из файла и перейдите к исходному тексту вашего файла bashrc, чтобы изменения были применены.
1 | source ~/.bashrc |
1 | echo $PATH |
Отлично! Теперь ваш скрипт может быть выполнен из любого места вашей системы.
Запуск сценариев Bash из графического интерфейса
Последний способ выполнения сценариев Bash - это использование графического интерфейса, в данном случае интерфейса GNOME.
Чтобы запускать скрипты с помощью GNOME, необходимо установить поведение проводника файлов "Спрашивать, что делать"для исполняемых файлов
Для этого нажмите на значок правой верхней строки и выберите "Preferences".
В меню нажмите на "Поведение" (Behavior) и выберите "Спрашивать, что делать" (Ask what to do) в разделе "Исполняемые файлы" (Executable Files).
Закройте это окно и дважды щелкните на файле сценария, который вы хотите выполнить.
При двойном щелчке вам будут предложены различные варианты: вы можете выбрать либо запуск вашего скрипта (в терминале или нет), либо просто отображение содержимого файла.
В данном случае нас интересует запуск скрипта в терминале, поэтому щелкните на этой опции.
Успех! Ваш скрипт успешно выполнен в новом экземпляре оболочки.
Заключение
В этом руководстве вы узнали, как можно легко запускать сценарии Bash в вашей системе, указывая путь к сценарию или интерпретаторы, доступные на вашем хосте.
Вы узнали, что можно сделать это еще проще, добавив путь к сценарию в переменную окружения PATH или используя существующие возможности пользовательского интерфейса GNOME.