我发现明天我需要一个快速而肮脏的演示。我正在使用一个使用ROS的机器人,我们有一些软件包使它以简单的方式移动。我想用一个命令启动所有必需的节点。我需要运行的命令行 - 所有在不同的终端 - 都是:
roscore
rviz
roslaunch [空白move_base地图]
roslaunch [包] [动作脚本]
rqt_graph
所有这些程序都无限期运行 - 例如, roscore 是一个协调其他节点的服务器。我不能只使用"&"将它们串在一起。它们每个都需要专用的终端窗口/过程。我怎么能用bash或Python做到这一点?
注意:我意识到使用自定义ROS启动文件可能会更好,但我没有时间。
答案 0 :(得分:3)
您可以从终端二进制文件本身启动软件,为每个终端创建一个新终端。这取决于您使用的终端。使用konsole
,您可以
konsole -e command [args]
...
使用gnome-terminal,你可以:
gnome-terminal -e command [args] &
使用xterm:
xterm -e command [args] &
也可以参考类似的帖子:Run multiple .sh scripts from one .sh script? CentOS