Tanto si vas a programar un script para otra persona como para ti mismo, es interesante que su diseño sea limpio, claro y conciso. Si sigues esta serie de pautas lo tendrás.
Ejecución desatendida
En este caso concreto, destacar que el script tiene que ser claro para su posible comprensión o cambios en el futuro. De resto, el script se ejecutará sin ser visto (ninja mode), con lo cual poco importa que sea bonito.
Ejecución manual
Aquí ya la cosa cambia, sobre todo si tenemos un script estilo asistente (mis preferidos). Hablemos de este con un ejemplo:
| Windows | Linux |
REM Autor: Kevin I. REM --- VARIABLES --- REM --- EXECUTIONS --- | #!bin/bash # --- VARIABLES --- # --- EXECUTIONS --- |
Yo particularmente empiezo poniendo el autor (en caso de Linux, también el interprete):
| Windows | Linux |
| rem Autor: Kevin I. | #!bin/bash # Autor: Kevin I. |
| Windows | Linux |
| echo off cls | clear |
Creo que es importante separar las variables que van a ser fijas y la que serán modificadas manualmente antes de su ejecución. Aunque podemos evitar eso pasando parámetros al script con las variables que serán modificadas según el caso y de esta forma no tener que editar el archivo cada vez que se quiera cambiar alguna variable:
| Windows | Linux |
script.bat kevin | script.sh kevin |
REM Autor: Kevin I. REM --- VARIABLES --- REM --- EXECUTIONS --- | #!bin/bash # --- VARIABLES --- # --- EXECUTIONS --- |
Hay una opción alternativa a las anteriores y es preguntar por el contenido que tendrán esas variables que cambian. Al ejecutar el script siguiente script, se detendrá para preguntarte "Nombre?:", lo escribes y continua la ejecución del resto del código:
| Windows | Linux |
REM Autor: Kevin I. REM --- VARIABLES --- REM --- EXECUTIONS --- | #!bin/bash # --- VARIABLES --- # --- EXECUTIONS --- |
Otra cosa a tener en cuenta, al igual que cualquier lenguaje de programación, es el tabulado. Importante para facilitar la lectura del código.
Para acabar, dejo de ejemplo un sencillo script en batch que suelo usar con todo lo anterior y algunos extras como un menú. A ver si averiguáis su función:
Para acabar, dejo de ejemplo un sencillo script en batch que suelo usar con todo lo anterior y algunos extras como un menú. A ver si averiguáis su función:
REM Autor: Kevin I.
REM Date: xx/xx/xx
REM Descripción: DELETED FOR SPOILER
ECHO OFF
CLS
:ZERO
ECHO --------------------------------------
ECHO Menú
ECHO --------------------------------------
ECHO.
ECHO 1.- Direccion IP Red 1 (192.168.0.190)
ECHO 2.- Direccion IP Red 2 (172.20.11.190)
ECHO 3.- Otra IP
ECHO.
SET /p option=Elige una opcion:
IF %option%==1 (
GOTO UNO
)
IF %option%==2 (
GOTO DOS
)
IF %option%==3 (
GOTO TRES
) ELSE (
ECHO Error: Elija una de las opciones
PAUSE
GOTO ZERO
)
:UNO
netsh interface ip set address "Ethernet" static 192.168.0.190 255.255.255.0 192.168.0.254
netsh interface ip set dns "Ethernet" static 8.8.8.8 8.8.4.4
ECHO Direccion IP Red 1 aplicada
ECHO.
PAUSE
EXIT
:DOS
netsh interface ip set address "Ethernet" static 172.20.11.190 255.255.255.0 172.20.11.254
netsh interface ip set dns "Ethernet" static 8.8.8.8 8.8.4.4
ECHO Direccion IP Red 2 aplicada
ECHO.
PAUSE
EXIT
:TRES
CLS
SET /p direc=Direccion IP:
SET /p masc=Mascara:
SET /p gate=Gateway:
SET /p dns1=DNS principal:
SET /p dns2=DNS secundario:
ECHO.
netsh interface ip set address "Ethernet" static %direc% %masc% %gate%
netsh interface ip set dns "Ethernet" static %dns1% %dns2%
ECHO Direccion IP %direc% aplicada
ECHO.
PAUSE
EXIT

0 comentarios:
Publicar un comentario