|
|
|
El Comando Goto
La orden Goto provoca un salto automático dentro de la secuencia que el programa utiliza para leer las líneas de un script, pasando directamente a leer a partir de una determinada etiqueta, las líneas que continúan a partir de ésta. Una etiqueta no es más que una palabra que ocupa una línea del script, y que se identifica como tal por tener el símbolo ":" delante. La llamada a una etiqueta desde la orden goto no debe de llevar los dos puntos delante.
El uso del comando goto es un recurso muy útil en especial cuando se utiliza desde dentro de una estructura if. La sintaxis de este comando es:
goto <etiqueta>
Ejemplo:
/CargaVar {
:PideDato
set %valor $$?="Introduzca un número entre 0 y 9"
if (( %valor < 0 ) || ( %valor > 9 )) {
echo -a Dato erróneo, introduzca solo un dígito entre 0 y 9
goto PideDato
}
}
Este alias es una sencilla rutina que nos permite aceptar valores para una variable, depurando que solo se introduzca un dígito entre 0 y 9, de no ser así el alias volverá una y otra vez a la etiqueta PideDato solicitando un nuevo valor para la variable.
Ejemplos:
1- El siguiente alias nos presentará la lista de operadores del canal en que nos encontramos en este momento. Se puede observar el empleo de la instrucción de salto incondicional (goto), el uso del parámetro $nick(canal,número), el comando inc(%variable), y la estructura if.
/listaOPs {
echo -a * Listando Operadores en #
set %i 1
:sigue
set %nick $nick(#,%i)
if ( %nick == $null ) { goto final }
if ( %nick isop # ) { echo 3 %nick is un Op! }
inc %i ;(Se incrementa en uno la variable %i)
goto sigue
:final
echo -a * Fin de la lista de operadores de #.
}
2- Este ejemplo presenta un alias que imprimirá en la pantalla de Status una tabla de los caracteres ASCII entre el 33 y el 241 ambos inclusive.
/TablASCII {
set %num 33
echo -s Tabla ASCII
:presenta
if ( %num > 241 ) { goto fin }
echo -s $chr( %num ) es el carácter ASCII carácter ASCII número:
%num
inc %num
goto presenta
:fin
echo -s Fin de la tabla.
}
|
|
|
|
|
|
|
Hoy habia 15 visitantes (28 clics a subpáginas) ¡Aqui en esta página! |
|
|
|
|
|
|
|