Поиск по сайту:
Клавиатуру топтать – это вам не джойстиком баловаться. (Неизвестный автор)

Скрипт Bash Включает другой скрипт Bash

23.07.2024
Скрипт Bash Включает другой скрипт Bash

Если вы энтузиаст 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"

 

Читать  Как использовать оператор && в Linux

Как включить несколько скриптов в один скрипт

Давайте создадим скрипт для проверки текущей загрузки процессора и выполним другой скрипт в соответствии с нагрузкой. Теперь нам нужно создать два скрипта, один для высокой загрузки, а другой для средней.:

Для высокой нагрузки:

#!/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: $

 

Завершение

Итак, в этом рассказывалось о простых способах включения одного скрипта в другой и повышения автоматизации без лишних проблем. Мы также включили пример, показывающий, как вы можете идеально включить несколько сценариев, чтобы разбить сложные процессы, не прибегая к автоматизации. Мы рекомендуем вам проявить творческий подход и создавать различные сценарии на основе связывающих сценариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В мире, где время становится самым ценным активом, а отвлечения…

Спасибо!

Теперь редакторы в курсе.