script.sh wird beim manuellen Öffnen des Terminals und bei Verwendung des Desktop-Launchers unterschiedlich ausgeführt

script.sh wird beim manuellen Öffnen des Terminals und bei Verwendung des Desktop-Launchers unterschiedlich ausgeführt

Ich habe eine Skriptdatei script1.shwie unten gezeigt:

#!/usr/bin/env bash 

cd /home/userA/scripts

. r1.sh

Wenn ich manuell ein Terminal öffne und es ausführe, . script.shfunktioniert es einwandfrei.

Aber als ich den unten stehenden Desktop-Launcher zum Ausführen erstellt habe, stand dort Folgendes ROSRUN command not found.

Dies ist die .desktopDatei:

[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

Und so r1.shsieht es aus:

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

Wenn mir also jemand sagen könnte, was der Grund dafür sein könnte, weiß ich nicht, warum es reibungslos läuft, ohne dass dieser Fehler auftritt, wenn ich ein Terminal manuell öffne und es ausführe, und warum der Fehler auftritt, wenn ich .desktopstattdessen den Launcher verwende?

Antwort1

Wie ich in einem Chat mit dem Fragesteller herausgefunden habe, rosrunhandelt es sich um einen Befehl, den er in seinem definiert hat .bashrc.

Fügen Sie Ihrer Definition für Rosrun dieselbe hinzu, script1.shdann sollte es funktionieren.

verwandte Informationen