【问题标题】:What does the Mikrotik :execute command return and what can I do with it?Mikrotik :execute 命令返回什么,我能用它做什么?
【发布时间】:2017-06-05 22:04:13
【问题描述】:

当我从 Mikrotik SSH 运行以下命令时,我看到一个星号后跟一个十六进制值,类似于 *4e

:put [:execute { :ping localhost count=10 }]

根据Mikrotik wiki:execute 命令在后台作为脚本作业执行命令。当我打印出当前正在运行的作业时,我看不到上面的输出与 this 的输出之间有任何关系。

[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

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

【问题讨论】:

    标签: mikrotik


    【解决方案1】:

    您得到的返回是一个 MikroTik RouterOS 内部 ID。在这种情况下,这是正在运行的作业的内部 ID。内部 ID 是对它们所代表的对象的不可变引用,并且具有在命令执行之间保持相同的优点,即使发生并发操作会更改对象 #,如 print 所示。

    您可以通过 * 后跟十六进制数字来识别内部 ID。在某些情况下,如find 一样,要返回多个项目,您将获得一个以; 分隔的 ID 列表,例如:

    *d;*1;*18;*3;*19;*1a;*20
    

    Internal IDs 可以在运行其他命令时使用,就像可打印的数字一样,由前面的* 区分。如果给出了多个内部 id 的列表,则该命令将在每个项目上运行。

    可以在Scripting Manual 中找到有关内部 ID 数据类型的信息。内部 ID 不遵循任何顺序,您不应假设它们这样做。要从打印输出中显示的对象 ID 获取对象的内部 ID,您可以使用 :put [get <id>],其中 <id> 是可打印的 id - 输出会将内部 id 显示为 .id 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2021-01-16
      相关资源
      最近更新 更多