Сценарий оболочки в пи малины Ubuntu 2

Я пишу сценарий оболочки в Ubuntu для пи малины 2. Вот мой сценарий.

#!/bin/sh

source /home/ubuntu/ros_package/devel/setup.bash
roslaunch uvc_camera camera_node.launch &

#Open new tab
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID

source /home/ubuntu/catkin_ws/devel/setup.bash
rosrun hybrid_tracking ir_track

У меня есть немного проблем в этом сценарии:

  1. Это не распознает исходную команду.
  2. Когда я поместил и позади roslaunch, он все еще регистрирует большой вывод, и следующей команде не удалось выполниться.
  3. Я ожидал открывать новую вкладку и выполнять остальную часть сценария на другой вкладке, но это не будет.
2
задан 16 July 2016 в 04:16

1 ответ

Как steeldriver отмеченный, #!/bin/sh относится к dash оболочка, и dash не имеет исходной команды. Можно изменить верхнюю строку на #!/bin/bash звонить bash вместо dash.

С другой стороны, можно измениться source кому: . , таким образом, строка была бы . /home/ubuntu/ros_package/devel/setup.bash . Однако Вы пытаетесь получить bash файл. Это означает, могут быть непортативные строки кода там и определение источника, которое может привести к сбою файл

Для roslaunch uvc_camera camera_node.launch & необходимо изменить его на roslaunch uvc_camera camera_node.launch 2>&1 > /dev/null & так, чтобы вывод той команды не был отображен.

Отметьте также, что необходимо заключить переменные в кавычки (как "$WID" ) предотвратить разделение слова (если Вы действительно не хотите содержание $WID рассматриваться как отдельные объекты, или при отсутствии отдельных слов там).

1
ответ дан 2 December 2019 в 04:55

Другие вопросы по тегам:

Похожие вопросы: