Короче, пришлось конкретно извратиться, но может кому-то будет полезно (может кто объяснит, почему это вообще работает ))):
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Incorrect number of arguments"
exit 1
fi
if [[ $(id -u) -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
newuser=$1
useradd -m -s /bin/bash $newuser
usermod -aG sudo $newuser
read -r -d '' node_install << EOF
#!/bin/bash
cd /home/${newuser}/code
curl -o-
https://raw.githubusercontent.com/nvm-sh/nvm/v0.35... | bash
source /home/${newuser}/.profile
source /home/${newuser}/.bashrc
nvm install 10.3
source /home/${newuser}/.profile
source /home/${newuser}/.bashrc
exit
EOF
echo -e "Node Install Script: \n""${node_install}"
echo "switching to the new user =""$newuser"
sudo -H -u ${newuser} bash -c "echo \"${node_install}\" > /home/$newuser/install_node.sh"
chmod +x /home/$newuser/install_node.sh
chown "${newuser}":"${newuser}" /home/$newuser/install_node.sh
sudo -i -H -u "${newuser}" exec $SHELL -i "/home/"${newuser}"/./install_node.sh"