web-dev-qa-db-ja.com

別々の端末でコマンドの実行を自動化する方法は?

私はLinuxオペレーティングシステムを初めて使用します。 ROS (Robotic Operating System)を使用していますが、セットアップを行うために別々のターミナルウィンドウにいくつかのコマンドを入力します。

すなわち、プログラムを実行する前に、(それぞれ個別のターミナルで実行する必要があります):

~$ 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

上記のコマンドは、実際にC++プログラムを実行する前に必須であり、それぞれのディレクトリから発行される上記の順序にする必要があります。

Ubuntu 12.04を使用しています。
プログラムまたは何かを書くことは可能ですか?その単一のプログラムを実行すると、上記のコマンドはすべて、それぞれのディレクトリではなく個別のターミナルで適切に実行されます毎回手動で実行しますか?

4
KARTHIK

シェルスクリプトを作成できます。これを行うには、Terminalを開きます。 Ctrl + Alt + T そしてタイプ:

touch daily-script.sh

次に、このファイルの内容を編集する必要があります

xdg-open daily-script.sh

次に、次のコードをコピーしてファイルに貼り付けます。

#!/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

ファイルを保存したら、ターミナルを開いて次のように入力します。

chmod +x daily-script.sh

最後に、ファイルを実行するために実行可能です:

./daily-script.sh

6
efthialex