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
следует это исправить.
Кроме того, .
(точка) более переносима, чем source
eg и работает с ней dash
, а также должна работать с любой другой оболочкой, маскирующейся под sh
:
. ./config.sh
Помимо этого,рассмотрите возможность использования $( ... )
вместо обратных кавычек в новых сценариях, ине забудьте заключить переменные в кавычки. Я бы также предложилиспользуя printf
вместо echo
переменного вывода.