source some_file
some_file:
doit ()
{
echo doit $1
}
export TEST=true
Если я использую исходный код some_file, функция «doit» и переменная TEST доступны в командной строке. Но запускаем этот скрипт:
script.sh:
#/bin/sh
echo $TEST
doit test2
Вернет значение TEST, но сгенерирует ошибку о неизвестной функции "doit".
Могу ли я тоже "экспортировать" функцию, или мне нужно найти файл some_file в script.sh, чтобы использовать эту функцию там?
#!/bin/sh
тоже используете , но это хорошая практика, чтобы #!/bin/bash
избежать проблем, когда оболочкой по умолчанию не является bash.
#!/bin/sh
к#!/bin/bash
и послеdoit() {...}
того, как толькоexport -f doit