从 bash 脚本调用 rosbag 信息
Calling rosbag info from a bash script
当您调用 ROS rosbag info abag.bag
时,您会得到类似
的结果
path: abag.bag
version: 2.0
duration: 1:35s (95s)
start: Aug 23 2021 03:34:46.34 (1629689686.34)
end: Aug 23 2021 03:36:21.45 (1629689781.45)
size: 1.1 GB
messages: 952
compression: none [952/952 chunks]
types: sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics: image_results 952 msgs : sensor_msgs/Image
有没有办法从 bash shell 文件中调用这个程序,然后提取 仅 一个字段(例如 messages) 将其与某物进行比较
伪代码类似于
call rosbag info and get messages
if messages== 952
then print("everything ok")
else print("some messages were skipped"
这在 bash 脚本中可行吗?
是的,你确实可以。 rosbag info
有一个标志,-k
,用于提取特定字段;您还需要使用 -y
才能正常工作。因此,在您的示例中,提取消息的数量看起来像 rosbag info -y -k messages abag.bag
。如果你想把所有这些都放在一个 bash 脚本中,它可能看起来像你将预期的消息数量作为命令行参数传递的地方:
expectedNum=
actualNum=$(rosbag info -y -k messages abag.bag)
if (( expectedNum==actualNum )); then
echo "everything okay"
else
echo "everything not okay"
fi
当您调用 ROS rosbag info abag.bag
时,您会得到类似
path: abag.bag
version: 2.0
duration: 1:35s (95s)
start: Aug 23 2021 03:34:46.34 (1629689686.34)
end: Aug 23 2021 03:36:21.45 (1629689781.45)
size: 1.1 GB
messages: 952
compression: none [952/952 chunks]
types: sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics: image_results 952 msgs : sensor_msgs/Image
有没有办法从 bash shell 文件中调用这个程序,然后提取 仅 一个字段(例如 messages) 将其与某物进行比较
伪代码类似于
call rosbag info and get messages
if messages== 952
then print("everything ok")
else print("some messages were skipped"
这在 bash 脚本中可行吗?
是的,你确实可以。 rosbag info
有一个标志,-k
,用于提取特定字段;您还需要使用 -y
才能正常工作。因此,在您的示例中,提取消息的数量看起来像 rosbag info -y -k messages abag.bag
。如果你想把所有这些都放在一个 bash 脚本中,它可能看起来像你将预期的消息数量作为命令行参数传递的地方:
expectedNum=
actualNum=$(rosbag info -y -k messages abag.bag)
if (( expectedNum==actualNum )); then
echo "everything okay"
else
echo "everything not okay"
fi