Petre, jestli minis delat z lidi blbecky a jen suse jim hazet nepouzitelne manualy, tak si to pro priste nech. Kdyby jsi si aspon precetl diskuzi ...
Ok, hluboce se omlouvám. Je to opravdu moje chyba. Ve verzi 3.X opravdu funguje i ve skriptu.
A este jeden problem. Mam script s nasledovnym obsahom:
/system script run aaa
script s nazvom aaa existuje no nespusti ho.
Ale jak sám vidíte, je to již po výpisu příkazu print, takže spíše doporučuji psát něco v tomto smyslu:
/system script run [/system script find name=aaa]
A pokud ani to nebude fungovat, tak můžete zkusit využít příkaz , který dělá to samé.
na 2.9 to jde normlane a manual jsem samozrejme studoval. Na 3.4 to nejde viz vice lidi zde a manual ke scriptovani ve verzi 3.0 zatim neni nikde k nalezeni ...
On ani není moc potřeba, protože princip je pořád stejný(teda až na ty bugy níže popsané a podobné chujoviny), jen se trochu zpřísnila syntaxe. Čim dal více pozoruji, že se RoS CLI, či jak to nazvat, snaží přiblížit BASHi(už funguje CTRL+L,CTRL+A,CTRL+E,atd. Jen kdyby chtěli dát místo toho integrovaného programu edit klasický vim)
Nastav promenou globalne jeste pred stustenim scriptu a tu pak vypis ve scriptu. Napriklad do promenne ulozim nazev rozhrani a pustim script co na danem rozhrani provede to co potrebuji. A o tohle cele mi jde.
testprom testik
a nasledne pustim run test kde cely kod je
:put "$testprom" ci :log info $testprom a co se nedovim?
syntax error (line 1 column 12)
Opravdu se dědění globálních proměnných ve verzi 3.4 trošku změnilo. Před použitím ve skriptu je proměnou nutno znova deklarovat aby byla převzata(přitom ve výpisu z print už obsažena je).Příklad:
[admin@MikroTik] /> :global promena "neco"
[admin@MikroTik] /> /system script add name="script" source=":environment print"
[admin@MikroTik] /> /system script run script
"promena"="neco"
[admin@MikroTik] /> /system script set script source=":put $promena"
[admin@MikroTik] /> /system script run script
syntax error (line 1 column 7)
[admin@MikroTik] /> /system script set script source=":global promena; :put $promena"
[admin@MikroTik] /> /system script run script
neco
[admin@MikroTik] />
Těžko říct jestli je to bug nebo nová funkce(spíš bych řekl bug) no ale bohužel je to tak. Toto plus ještě nějaké další věci jsem našel v tomto topicu.
Dále jsem si všiml nového menu a to /system script environment. Pokud skript i tak nezdědí globální proměnou, doporučuji mrknout zda-li je tam obsažena protože mi přišlo, že to dědí jak se mu chce.
No a na závěr: