sudo -su:未找到命令

sudo -su:未找到命令

我正在一个脚本中执行此操作.sh,调用方式如下sudo ./script.sh

user=${SUDO_USER} # ="alex"
sudo -su ${user} node

结果:

/bin/bash: node: command not found

其他命令也一样,例如,yarnnvm所有命令在以以下身份登录时都已安装并运行alex

我究竟做错了什么?

which node运行alex结果如下:

/home/alex/.nvm/versions/node/v10.15.1/bin/node

node安装alex使用将其添加到(正在使用)nvm的末尾/home/alex/.zshrcalexzsh

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

答案1

我认为没有名为 node 的用户。试试这个

cat /etc/passwd | grep node

如果它打印节点,则说明有效

user=${SUDO_USER} 
sudo -su ${user} node

如果不创建名为节点的用户,则像这样

adduser node
user=${SUDO_USER} 
sudo -su ${user} node

最后你的 scripts.sh 就可以运行了。

相关内容