Не используйте sudo
, если у вас нет веских причин.
Когда вы запускаете sudo ./script.sh
, он запускается от имени пользователя root, поэтому ~
относится к домашнему каталогу root /root
вместо вашего пользователя.домашний каталог.
Просто запустите ./script.sh
, чтобы он работал как вы и изменял ваш собственный домашний каталог.