手动打开终端和使用 .desktop 启动器时 script.sh 的运行方式不同

手动打开终端和使用 .desktop 启动器时 script.sh 的运行方式不同

script1.sh我有一个如下所示的脚本文件:

#!/usr/bin/env bash 

cd /home/userA/scripts

. r1.sh

当我手动打开一个终端并运行它时,. script.sh它运行正常。

但是当我创建下面的 .desktop 启动器来运行时,它说ROSRUN command not found

这是.desktop文件:

[Desktop Entry] 
Version=1.0 
Type=Application 
Terminal=true 
Icon[en_AU]=/home/userA/Pics/pic1.png 
Name[en_AU]=automatic 
Exec=/home/userA/Desktop/script1.sh 
Comment[en_AU]=comment 
Name=automatic 
Comment=comment 
Icon=/home/userA/Pics/pic1.png

如下所示r1.sh

#!/bin/bash 
rosrun r1 r1 \ 
-p1 $p1 \ 
-p2 $p2 \ 
-p3 $p3

所以如果有人能告诉我这背后的原因是什么的话。因为我不知道为什么在手动打开终端并运行它时它运行顺利而没有出现这个错误,为什么当我使用.desktop启动器时会出现错误?

答案1

正如我在与提问者聊天中发现的那样,rosrun这是他在他的 中定义的命令.bashrc

为 rosrun 添加相同的定义,script1.sh它就可以工作了。

相关内容