Je suis nouveau sur le système d'exploitation LINUX. J'utilise ROS (système d'exploitation robotique) où je tape quelques commandes dans des fenêtres de terminal séparées pour effectuer la configuration.
c'est-à-dire qu'avant de lancer mon programme, je dois faire ( chacun dans un terminal séparé ):
~$ 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
Les commandes ci-dessus sont indispensables avant de pouvoir exécuter mon programme C++. Le programme doit être dans l'ordre indiqué ci-dessus, à partir des répertoires respectifs.
J'utilise Ubuntu 12.04.
Est-il possible d'écrire un programme ou quelque chose de telle sorte que si je lance ce seul programme, toutes les commandes ci-dessus seront correctement exécutées dans des terminaux distincts aux répertoires respectifs plutôt que de les exécuter manuellement à chaque fois?
Vous pouvez créer un script Shell. Pour ce faire, ouvrez un Terminal avec Ctrl + Alt + T et type:
touch daily-script.sh
Maintenant, nous devons éditer ce contenu de fichier
xdg-open daily-script.sh
Copiez ensuite le code ci-dessous dans votre fichier:
#!/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
Une fois le fichier sauvegardé, ouvrez un terminal et tapez:
chmod +x daily-script.sh
Enfin, votre fichier est exécutable, pour le lancer:
./daily-script.sh