Я делаю это в скрипте .sh
, который я так называю sudo ./script.sh
:
user=${SUDO_USER} # ="alex"
sudo -su ${user} node
Результат:
/bin/bash: node: command not found
То же самое и для других команд как yarn
или nvm
, также все они установлены и работают при входе в систему как alex
Что я делаю не так? :
/home/alex/.nvm/versions/node/v10.15.1/bin/node
node
для alex
устанавливается с использованием nvm
, который добавляет это к концу /home/alex/.zshrc
(alex
использует zsh
)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Я думаю, что нет узла с именем пользователя. попробуйте это
cat /etc/passwd | grep node
, если он печатает узел, это работает
user=${SUDO_USER}
sudo -su ${user} node
, если не создать пользовательский узел, например,
adduser node
user=${SUDO_USER}
sudo -su ${user} node
и, наконец, ваши скрипты .sh будет работать.