С некоторой интерпретацией того, чего вы, возможно, захотите достичь, рассмотрите что-то вроде этого (измените пути, топи c имена соответственно):
#!/bin/bash
source '/home/yourUsername/catkin_ws/devel/setup.bash'
if [ "$1" = "1" ];
then
echo "Available topics"
topiclist=$(rostopic list)
echo "$topiclist"
echo "Echoing topic $2"
rostopic echo $2
fi
Я не уверен, почему вы хотите первый if
заявление. На данный момент он проверяет, вызвали ли вы сценарий с 1
в качестве первого аргумента, например:
./bashEcho 1 myTopic
Также обратите внимание, что этот сценарий не завершится при нормальных обстоятельствах. Вы должны нажать ctrl+c
, чтобы остановить процесс rostopic echo
.