Если вы энтузиаст Linux, то, вероятно, слышали о концепции bash scripting. В bash scripting вы можете автоматизировать блок кода последовательности команд. Однако иногда блок кода в скрипте bash становится сложным, и пользователю может быть сложно выполнить его дальше.
Вот почему bash предлагает функцию, которая включает скрипт в другой. Это позволяет эффективно запускать команды и достигать повышенного уровня автоматизации. В этом посте мы объясним концепцию и приведем примеры того, как включить скрипт bash в другой скрипт.
Исходник – это одна из наиболее распространенных команд для включения скрипта bash в другой. Например, если вы хотите добавить “info.sh ” script into “main.sh ”, поэтому все, что вам нужно сделать, это добавить следующую строку в скрипт “main.sh ”:
source info.sh
/bin/bash source info.sh echo "You Need to AUTHORIZE"
В скрипте info.sh содержится следующая информация:
#1/bin/bash echo "Hello SUSER" echo "Welcome"
Как только вы запустите скрипт main.sh, он сначала выполнит команду info.sh, а затем другие команды:
andreyex@andreyex: $ ./main.sh Hello andreyex Welcome You Need to AUTHORIZE
Вы можете использовать точку (.) вместо исходной команды, поскольку оба они похожи и используются для выполнения команды из текущей командной оболочки.
#!/bin/bash .info.sh echo "You Need to AUTHORIZE"
Вы также можете использовать косую черту (./) вместо точки (.) для выполнения команды из текущего каталога:
#!/bin/bash ./info.sh echo "You Need to AUTHORIZE"
Давайте создадим скрипт для проверки текущей загрузки процессора и выполним другой скрипт в соответствии с нагрузкой. Теперь нам нужно создать два скрипта, один для высокой загрузки, а другой для средней.:
Для высокой нагрузки:
#!/bin/bash echo "Обнаружена высокая загрузка процессора." echo "Уничтожение несущественных процессов ..." pkill -9 -f firefox echo "Завершены несущественные процессы."
Для средней нагрузки:
#!/bin/bash echo "Регистрация текущих состояний процесса ..." echo "Умеренная загрузка процессора..." ps -aux > /tmp/current_processes.txt echo "Журнал процесса был создан по адресу /tmp/current_processes.txt."
Приведенный выше скрипт создает текстовый файл tmp, если в системе средняя загрузка процессора. Теперь давайте создадим третий скрипт, в котором будет ссылка на два вышеупомянутых скрипта:
#!/bin/bash cpu_load=$(uptime | awk -F '[a-z]:' '{ print $2}' | cut -d, -f2 | xargs) if (( $(echo "$cpu_load > 2.0" | bc -l) )); then echo "Запуск сценария с высокой нагрузкой." source scripts/high_load.sh else (( $(echo "$cpu_load > 1.0" | bc -l) ); echo "Запуск скрипта с умеренной нагрузкой." source scripts/moderate_load.sh fi
andreyex@andreyex: $ ./monitoring.sh Trigger medium load script medium CPU LOAD Регистрация текущих состояний процесса… Журнал процесса был создан по адресу /tmp/current-process.txt andreyex@andreyex: $
Итак, в этом рассказывалось о простых способах включения одного скрипта в другой и повышения автоматизации без лишних проблем. Мы также включили пример, показывающий, как вы можете идеально включить несколько сценариев, чтобы разбить сложные процессы, не прибегая к автоматизации. Мы рекомендуем вам проявить творческий подход и создавать различные сценарии на основе связывающих сценариев.