Scriptovat sice jde, ale je to naprosto šíleně navržené. Už jenom ten zmíněný příklad s komentářem - pokud odsadím (nebo si chci okomentovat na konci řádku), příkaz se neprovede. A co je asi horší - script skončí a ani se člověk nedoví proč (ani na kterém řádku). Přitom udělat tam mezeru není až tak složité, neboť winbox používá proporciální fonty.
Nebo druhá pěkná bota - pokud uvnitř příkazu IF stane chyba, provede se ELSE (nebo dokonce oboje, teď si nejsem úplně jistý). Což je vtipné v případě, kdy tam ten IF je jen proto, aby se kus kódu neprovedl právě proto, že to daná verze ROS neumí. Týká se to příkazů simulujících winbox, tedy např /interface wireless - pokud tam použiji závadný parametr (což může být třeba definice frekvenčních pásem, ty v jedné verzi změnily tvar, ale ne smysl). Takže i když příkaz není proveden, je otestován. Vyhodí to chybu a hle - jsme v bloku ELSE. Takže v IFech používám skoro vždy radši příkazy "execute", ty jsou v tomto případě vždy správně a funguje to jak má.
A co tak spravit skript v BASH, ktory sa na mikrotik pripoji cez ssh a necha spravit vypis alebo zada prikaz. BASH si s Mikrotikom velmi dobre rozumie a ma hlavne viac funkcii ako mikrotik. A nikde v clanku som si nevsimol ze by upozornili na rozdiel v syntaxy medzi verziami >3.0 a 2.9.x
Pěkný článek. Právě jsem napsal (spíš poskládal) pár skriptů, které umožní omezit přístup některých PC na internet. Měly by se spouštět z různých PC s různými parametry (předávám je pomocí globální proměnné). Jenomže! Když se skript rozměhne z jedné stanice např. s parametrem 1 a v průběhu jeho zpracování se skript spustí odjinud s parametrem 2, pak se i v tom prvním běhu změní hodnota parametru a udělá to "neplechu". Část prvního spuštění běží s parametrem 1 ale poté se parametr změní na 2 a s tím to doběhne (a to už nemusí být korektní). Druhé spuštění běží s tou hodnotou 2.
Prosím, poraďte. Hledám už několik týdnů... a zatím nic.