当我从Mikrotik SSH运行以下命令时,我看到一个星号后跟一个十六进制值,它看起来像*4e
。
:put [:execute { :ping localhost count=10 }]
根据Mikrotik wiki,:execute
命令在后台执行命令作为脚本作业。当我打印出当前正在运行的作业时,我没有看到上面的输出与此输出之间的任何关系。
[admin@MikroTik] > /system script job print
# SCRIPT OWNER STARTED
0 admin jun/05/2017 16:58:09
1 admin jun/05/2017 17:07:31
那么,输出代表什么以及如何使用它?
答案 0 :(得分:2)
您获得的回报是MikroTik RouterOS内部ID。在这种情况下,这是正在运行的作业的内部ID。内部ID是对它们所代表的对象的不可变引用,并且具有在命令执行之间相同的优点,即使正在进行并发操作会改变对象#
,如print所示。
您可以通过*
后跟十六进制数来标识内部ID。在某些情况下,如find
所示,要返回多个项目,您将获得;
分隔的ID列表,例如:
*d;*1;*18;*3;*19;*1a;*20
内部ID可以像运行其他命令一样使用,就像可打印的数字一样,并且由前面的*
区分。如果给出了多个内部ID的列表,则命令将在每个项目上运行。
有关内部ID数据类型的信息,请参阅Scripting Manual。内部ID不遵循任何排序,您不应该假设他们这样做。要从打印输出中的ID显示获取对象的内部ID,您可以使用:put [get <id>]
其中<id>
是可打印的ID - 输出会将内部ID显示为.id
属性。