📜 Как вызвать один скрипт bash из другого скрипта

Как запустить скрипт в скрипте

by itisgood
В мире Unix и Linux shell-сценарии – это мощный инструмент для автоматизации задач, управления системами и многого другого.
Часто мы сталкиваемся с необходимостью вызывать один shell-скрипт изнутри другого.
Это не только помогает организовать сложные сценарии в управляемые фрагменты, но и способствует повторному использованию и обслуживанию.

Зачем вызывать скрипт из другого скрипта?

  • Модульность: Разбиение сложных скриптов на более мелкие, управляемые.
  • Возможность повторного использования: Использование одного и того же скрипта в нескольких других скриптах без переписывания кода.
  • Организация: Более легкое обслуживание и удобство чтения.

Основной метод

Самый простой способ вызвать скрипт из другого скрипта – это использовать путь к нему в родительском скрипте.

Пример:

Предположим, у вас есть два сценария: script1.sh и script2.sh.

script1.sh:


#!/bin/bash
echo "This is Script 1"

script2.sh:


#!/bin/bash
echo "Calling Script 1 from Script 2"
./script1.sh
echo "Script 1 has finished execution"

В данном случае script2.sh передает в script1.sh строку “Hello from Script 2”, которая принимается как $1 (первый аргумент) в script1.sh.

Использование команды Source

Другой метод – использование команды source или ее сокращения ..

Этот метод выполняет вызываемый скрипт в текущем окружении оболочки, что означает, что любые переменные или изменения, сделанные вызываемым скриптом, сохраняются в вызывающем скрипте.

Пример:script1.sh:


#!/bin/bash
MESSAGE="Message from Script 1"

script2.sh:


#!/bin/bash
source ./script1.sh
echo $MESSAGE

В этом примере script2.sh выведет “Message from Script 1”, потому что он сохраняет изменения окружения, сделанные script1.sh.

Заключение

Вызов одного скрипта оболочки из другого – это фундаментальная техника в написании скриптов.

Он повышает модульность, удобство повторного использования и организованность сценария.

Независимо от того, являетесь ли вы системным администратором, разработчиком или просто любителем Linux, владение этой техникой необходимо для эффективной работы.

см. также:

 

You may also like

Leave a Comment