Mikrotik :execute 命令 return 有什么作用,我可以用它做什么?
What does the Mikrotik :execute command return and what can I do with it?
当我从 Mikrotik SSH 运行 执行以下命令时,我看到一个星号后跟一个十六进制值,看起来像 *4e
。
:put [:execute { :ping localhost count=10 }]
根据Mikrotik wiki,:execute
命令作为脚本作业在后台执行命令。当我打印出当前 运行ning 作业时,我没有看到上面的输出与此输出之间的任何关系。
[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
那么,输出代表什么,我该如何使用它?
您得到的 return 是一个 MikroTik RouterOS 内部 ID。在本例中,这是 运行ning 作业的内部 ID。内部 ID 是对它们所代表的对象的不可变引用,并且具有在命令执行之间相同的优点,即使发生并发操作会更改对象 #
,如打印所示。
您可以通过 *
后跟一个十六进制数来识别内部 ID。在某些情况下,return 有多个项目,这在 find
中很常见,您将得到一个 ;
分隔的 ID 列表,例如:
*d;*1;*18;*3;*19;*1a;*20
内部ID可以在运行其他命令中使用,就像可打印的数字一样,并通过前面的*
来区分。如果给出了多个内部 ID 的列表,该命令将对每个项目 运行。
有关内部 ID 数据类型的信息可以在 Scripting Manual 中找到。内部 ID 不遵循任何顺序,您不应该假设它们遵循任何顺序。要从打印输出中显示的 ID 中获取对象的内部 ID,可以使用 :put [get <id>]
,其中 <id>
是可打印 ID - 输出将内部 ID 显示为 .id
属性.
当我从 Mikrotik SSH 运行 执行以下命令时,我看到一个星号后跟一个十六进制值,看起来像 *4e
。
:put [:execute { :ping localhost count=10 }]
根据Mikrotik wiki,:execute
命令作为脚本作业在后台执行命令。当我打印出当前 运行ning 作业时,我没有看到上面的输出与此输出之间的任何关系。
[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
那么,输出代表什么,我该如何使用它?
您得到的 return 是一个 MikroTik RouterOS 内部 ID。在本例中,这是 运行ning 作业的内部 ID。内部 ID 是对它们所代表的对象的不可变引用,并且具有在命令执行之间相同的优点,即使发生并发操作会更改对象 #
,如打印所示。
您可以通过 *
后跟一个十六进制数来识别内部 ID。在某些情况下,return 有多个项目,这在 find
中很常见,您将得到一个 ;
分隔的 ID 列表,例如:
*d;*1;*18;*3;*19;*1a;*20
内部ID可以在运行其他命令中使用,就像可打印的数字一样,并通过前面的*
来区分。如果给出了多个内部 ID 的列表,该命令将对每个项目 运行。
有关内部 ID 数据类型的信息可以在 Scripting Manual 中找到。内部 ID 不遵循任何顺序,您不应该假设它们遵循任何顺序。要从打印输出中显示的 ID 中获取对象的内部 ID,可以使用 :put [get <id>]
,其中 <id>
是可打印 ID - 输出将内部 ID 显示为 .id
属性.