config.sh

config.sh

config.sh

hi="/home/user"
date_sec=`date '+%s'`

это мой файл1.

main.sh

source config.sh
cd $hi
echo "$date_sec"

Исходный код не работает в main.sh

решение1

Некоторые оболочки требуют, чтобы файл sourceбыл доступен в вашем компьютере $PATH, если вы не укажете путь к скрипту:

$ ksh93 main.sh
main.sh[1]: .: config.sh: cannot open [No such file or directory]

Изменение команды на

source ./config.sh

следует это исправить.

Кроме того, .(точка) более переносима, чем sourceeg и работает с ней dash, а также должна работать с любой другой оболочкой, маскирующейся под sh:

. ./config.sh

Помимо этого,рассмотрите возможность использования $( ... )вместо обратных кавычек в новых сценариях, ине забудьте заключить переменные в кавычки. Я бы также предложилиспользуя printfвместо echoпеременного вывода.

Связанный контент