Допустим, надо сделать один большой скрипт, и хочется использовать именно bash скрипт, потому что он будет работать везде.
Недавно мне надо было собрать xcframework, который использует Сишную библиотеку libopus. Передо мной стояли следующие цели, чтобы:
Задача кажется не сложной, надо:
Не хотелось писать все в одном файле, потому что это было бы тяжело читать и поддерживать. Я выбрал другой подход и выделил каждый шаг в отдельный файл, так же есть один файл build.sh, который подгружает остальные файлы и вызывает функции из них.
Все просто, создаете отдельный файл и пишете в нем:
#!/bin/bash
echo_world() {
echo "world"
}
Чтобы загрузить эту функцию и выполнить ее, потребуется проверить наличие файла, после чего загрузить его с помощью команды source.
#!/bin/bash
ECHO_WORLD_PATH="./echo-world-source.sh"
if [ ! -f "$ECHO_WORLD_PATH" ]; then
echo "$ECHO_WORLD_PATH not found"
exit 1
fi
source "$ECHO_WORLD_PATH"
# Вызываем функции из файла
echo_world
Вы пробовали такой подход? Как вам кажется удобно ли будет так разбивать сложные скрипты?
Разделение логики скрипта на несколько файлов упрощает его чтение и поддержку.
21 декабря 2021 г.