1

У меня есть гнездо сценариев bash, которые могут генерировать друг друга, источники egash, источники b.sh, источники a.sh и т. Д ... Помимо редизайна, который не всегда может быть осуществим, каковы наилучшие методы для избежания цикла источника?

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

a.sh: 
    declare -F a
    if [ $? -eq 0 ]
    then
        return
    fi
    ...
    function a()
    {
    }

другое - иметь переменную $ sourced_a_sh для каждого файла и, если установлено, возвращать.

Однако все они кажутся довольно глупыми. Есть ли лучший способ?

1 ответ1

1

Вы можете добавить это в качестве первой строки в вашем скрипте a.sh:

[ "$sourced_a_sh" != "" ] && return || sourced_a_sh=.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .