У меня есть ответ на user4040650, потому что он прост и позволяет комментарии в файле (то есть строки, начинающиеся с #), что очень желательно для меня, поскольку комментарии, объясняющие переменные, могут быть добавлены. Просто переписывание в контексте исходного вопроса.
Если скрипт вызван как указано: minientrega.sh prac1
, то minientrega.sh может иметь:
set -a # export all variables created next
source $1
set +a # stop exporting
# test that it works
echo "Ficheros: $MINIENTREGA_FICHEROS"
Выбрано следующее: из документации set :
Этот встроенный интерфейс настолько сложный, что он заслуживает своего собственного раздела. set позволяет изменять значения параметров оболочки и устанавливать позиционные параметры или отображать имена и значения переменных оболочки.
set [--abefhkmnptuvxBCEHPT] [-o option-name] [argument ... ] set [+ abefhkmnptuvxBCEHPT] [+ o option-name] [argument ...]
Если параметры и аргументы не заданы, набор отображает имена и значения всех переменных и функций оболочки, отсортированных в соответствии с текущими locale, в формате, который может быть повторно использован как вход для установки или сброса переменных, заданных в текущий момент. Переменные только для чтения не могут быть сброшены. В режиме POSIX перечислены только переменные оболочки.
Когда заданы параметры, они устанавливают или отменяет атрибуты оболочки. Параметры, если они указаны, имеют следующие значения:
-а Каждая переменная или функция, которая создана или изменена, получает атрибут экспорта и помечен для экспорта в среду последующих команд.
И это также:
Использование '+', а не '-' заставляет эти параметры отключать. Эти опции также могут использоваться при вызове оболочки. Текущий набор параметров можно найти в $ -.