То, как вы используете это, разумно.
Я не могу воспроизвести вашу проблему с оболочкой bash, над которой я мог бы работать (GNU bash, версия 4.1.2 и GNU bash, версия 4.3.11). Смотрите это ниже:
Тестовый скрипт go.sh
Вы можете запустить его с помощью ./go.sh
после того, как сделаете его исполняемым с помощью chmod u+x go.sh
а также /bin/bash go.sh
echo " ### Here we start ###" Script line 1
source my_sourced_file
echo Script line 3
casfsda # this is the line 4 of script
echo Script line 5
f "Script line #6 using the function from sourced file"
echo " ### Here we finish ###" Script line 7
Файл с функциями, которые вы должны поместить в текущий каталог с именем my_sourced_file
:
echo Hello word this is the 1 line of my_sourced_file
f(){ echo Hello $1 ;}
f "Gustave line number 3 of my_sourced_file"
echo linea 4 my_sourced_file
Выход (в черном ошибка)
### Здесь мы начинаем ### Строка сценария 1
Здравствуйте, слово, это 1 строка my_sourced_file
Привет Густав, строка № 3 из my_sourced_file
linea 4 my_sourced_file
Сценарий 3
./go.sh: строка 4: casfsda: команда не найдена
Сценарий 5
Строка сценария Hello # 6 с использованием функции из файла ### из источника. Здесь мы заканчиваем строку ### сценария 7
- Протестировано на GNU bash, версия 4.3.11
- и на старом GNU bash, версия 4.1.2