Como automatizar a execução de comandos em terminais separados?

4

Eu sou novo no sistema operacional LINUX. Eu estou usando ROS (Sistema operacional robótico) onde eu digito alguns comandos em janelas de terminal separadas para fazer a configuração.

ie Antes de eu executar meu programa, eu tenho que fazer ( cada em terminal separado ):

~$ roscore 

~$ rosrun nodelet nodelet standalone
velodyne_pointcloud/CloudNodelet

~/Desktop/OpenCV$ source setup.bash 

~/Desktop/OpenCV$ rosrun pcl_tutorial
front_view_bag input:=/velodyne_points

/media/BE8C6D3A8C6CEDF9/Users/KARTHICK/Desktop/project/ros_datas$
rosbag play file2.bag

Os comandos acima são obrigatórios antes que eu possa realmente executar o meu programa C ++ e ele deve estar na ordem acima, emitida a partir dos respectivos diretórios.

Estou usando o Ubuntu 12.04.
É possível escrever um programa ou algo assim para que se eu executar esse programa único, todos os comandos acima serão executados corretamente em terminais separados nos respectivos diretórios em vez de executá-los manualmente cada vez?

    
por KARTHIK 22.02.2013 / 08:18

1 resposta

6

Você pode fazer um script de shell, para isso, abra um Terminal com Ctrl + Alt + T e digite:

touch daily-script.sh

Agora precisamos editar o conteúdo deste arquivo

xdg-open daily-script.sh

Na próxima cópia, cole o código abaixo em seu arquivo:

#!/bin/bash

cd $HOME
xterm -hold -e "roscore" &
xterm -hold -e "rosrun nodelet nodelet standalone velodyne_pointcloud/CloudNodelet" &
cd $HOME/Desktop/OpenC
xterm -hold -e "source setup.bash; rosrun pcl_tutorial front_view_bag input:=/velodyne_points" &
cd /media/BE8C6D3A8C6CEDF9/Users/KARTHICK/Desktop/project/ros_datas
xterm -hold -e "rosbag play file2.bag"

exit 0

Depois de salvar o arquivo, abra um Terminal e digite:

chmod +x daily-script.sh

Finalmente, seu arquivo é executável, para executá-lo:

./daily-script.sh

    
por efthialex 22.02.2013 / 08:26