script.sh は、ターミナルを手動で開いたときと .desktop ランチャーを使用したときで実行方法が異なります。

script.sh は、ターミナルを手動で開いたときと .desktop ランチャーを使用したときで実行方法が異なります。

以下に示すようなスクリプト ファイルがあります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動作するはずです。

関連情報