Выбор выбранных элементов из стандартного ввода с помощью вариантов, введенных в консоль

bash -c "source test.sh"

— несколько необычный способ запуска test.sh, объединяющий sourceс отдельной оболочкой.

Это можно обнаружить, взглянув на $0; типичная форма была бы

if [ "${0##*/}" = "test.sh" ]; then
    # being run directly
else
    # being sourced
fi

, так как $0не будет отражать сценарий, когда задействован source.

Помимо обработки аргументов, не должно быть никакой практической разницы с точки зрения test.shмежду

bash test.sh

и

bash -c "source test.sh"

, однако последняя форма предпочтет test.shв PATHtest.shв текущем каталоге.

См. В чем разница между поиском ('.' или «источник» )и выполнение файла в bash? для получения подробной информации о различиях при поиске сценария в текущей оболочке.

1
06.06.2020, 01:47
0 ответов

Теги

Похожие вопросы