Код: Выделить всё
:local jobid [:execute script={/ping 8.8.8.8 count=5}]
# playing music while running ping
:while ([:len [/system script job find .id=$jobid ]] > 0) do={
:beep frequency=300 length=494ms;
:delay 300ms;
:beep frequency=600 length=494ms;
:delay 300ms;
:beep frequency=900 length=494ms;
:delay 300ms; }
А можно наоборот:
Код: Выделить всё
:local jobid [:execute script={:beep frequency=300 length=494ms;
:delay 300ms;
:beep frequency=600 length=494ms;
:delay 300ms;
:beep frequency=900 length=494ms;
:delay 300ms;}]
# ping is performed while the melody is playing
:while ([:len [/system script job find .id=$jobid ]] > 0) do={
/ping 8.8.8.8
}
В скрипте интересна строка /system script job find .id= опять показывающая недокументированную возможность РОС, а именно наличия некоего id (внутреннего номера) у выполняющихся скриптов (в /system script job).
Точнее .id есть у всех списков, но он бесполезен, как правило, в скриптах, так как по нему ничего нельзя взять - это внутренний идентификатов, используемый РОС и, например, циклом :foreich.
Однако, проверить, что список не пустой, по идентификатору можно.
Можно использовать этот прием при создании своих скриптов - пока выполняется скрипт в фоне (или если фоновый скрипт выполняется), то делается что-нибудь ...