В моем файле .profile есть переменная RESLOC, которая время от времени меняется. Поэтому я написал сценарий, просто беря ввод от пользователя по новому имени.Sourcing .profile из другого скрипта в ksh
кошка tst.sh
echo "Enter the Result Location name where you would like your results to go."
read RESL
perl -pi.bak -e "s/([\s]+)RESLOC=\/result\/([\S]+)/$1 RESLOC=\/result\/${RESL}/g" /user/.profile
cd /user
. /user/.profile
echo "$RESLOC"
Последнее утверждение эха дает выход в качестве значения заданного пользователя. Но когда я выполняю echo $ RESLOC после того, как сценарий был выполнен в терминале, он отображает старое значение.
O/P сценария:
Enter the Result Location name where you would like your results to go.
Release12
/user/Release12
Когда попытка отобразить RESLOC после выполнения завершения.
echo $RESLOC
/user/Release11
Файл .profile обновлен Release12. Но это не правильно. Пожалуйста, помогите.