Mikrotik:执行命令返回什么以及我可以用它做什么?

时间:2017-06-05 22:04:14

标签: mikrotik

当我从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

那么,输出代表什么以及如何使用它?

1 个答案:

答案 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属性。