通过桌面图标运行 bash 脚本时找不到节点命令

Posted

技术标签:

【中文标题】通过桌面图标运行 bash 脚本时找不到节点命令【英文标题】:Node command not found when bash script is run through desktop icon 【发布时间】:2021-08-17 08:58:23 【问题描述】:

我正在尝试使用 bash 脚本从桌面图标运行节点应用程序。桌面图标执行 bash 脚本,这个应该运行节点应用程序。如果我手动运行 bash 脚本,节点应用程序会正常启动,但是当我双击桌面图标时,bash 脚本会返回:line 3 node: command not found 并以 Bye 结束(参见下面的脚本)。

这里是.desktop 图标内容和 bash 脚本。

.desktop:

[Desktop Entry]
Version=1.0
Name=Todo
Comment=Shortcut to my app
Exec='/home/myuser/app/run_todo.sh'
Icon=/home/myuser/Pictures/donatello.svg
Terminal=true
Type=Application
Categories=Application

bash 脚本:

#!/bin/bash
cd /home/myuser/app/todo_app/
node ./app.js
echo "Bye"
$SHELL

我使用的是通过 nvm 安装的 Ubuntu 20.04 和 Node 12.14.1。

【问题讨论】:

【参考方案1】:

一位同事解决了这个问题。只需添加

PATH="/home/myuser/.nvm/versions/node/v12.14.1/bin:$PATH"

#!/bin/bash 行之后。

所以 bash 脚本终于是:

#!/bin/bash
PATH="/home/myuser/.nvm/versions/node/v12.14.1/bin:$PATH"

cd /home/myuser/app/todo_app/
node ./app.js
echo "Bye"
$SHELL

【讨论】:

以上是关于通过桌面图标运行 bash 脚本时找不到节点命令的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试脚本中包含adb命令,jenkins构建时找不到adb解决办法

使用 sudo 时找不到命令

使用 sudo 时找不到命令

如何通过 pssh/fabric 库使用 lsof 命令? Bash:找不到lsof命令[重复]

CentOS6.4系统配置ip时找不到setup命令

使用 Cygwin 为 Linphone 运行 make 命令时找不到 android 错误