1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/bash echo Simple Calculadora echo echo Operadores disponibles : echo "+ - * / ^ %" echo Ejemplo: echo 3*4/2 read -p "Operacion : " operacion echo $operacion|bc -l exit 0 |
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/bash echo Simple Calculadora echo echo Operadores disponibles : echo "+ - * / ^ %" echo Ejemplo: echo 3*4/2 read -p "Operacion : " operacion echo $operacion|bc -l exit 0 |
Este script lo utilizo desde Windows 7, mediante una tarea programada, lo ejecuto indefinidamente cada 30 minutos. lo que realiza es «lanzar» un script en un servidor determinado y verificar si un proceso esta en ejecución. Captura la respuesta, si la respuesta recibida es «ok», no realiza nada. De lo contrario, envía un email informando la situación.
Para la utilización de este, se necesitan los siguientes utilitarios «sendemail.exe» y «plink.exe», los cuales los puede bajar desde la WEB.
Este ejemplo sirve de base para automatizar cualquier proceso que lo requiera.
1 2 3 4 5 6 7 8 9 10 |
@echo off :inicio FOR /F "usebackq" %%a in (`plink.exe -ssh -pw password usuario@servidor sh vigila_proceso.sh`) do ( set glosa=%%a ) if "%glosa%"=="ok" goto salida :mail sendemail.exe -f envio-desde@cor.cl -t para@cor.cl -u "ALERTA - Vigila %glosa% : abajo" -m "ALERTA - Vigila %glosa% : abajo" -s smtp.cor.cl :salida exit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/bash # Script para quitar los espacios al inicio y al final de una variable cadena=' prueba de trim ' #Los [] son para ver claramente los espacios echo "+ Cadena original [${cadena}]" # quito los espacios del principio cadena="${cadena#"${cadena%%[![:space:]]*}"}" # quito los espacios del final cadena="${cadena%"${cadena##*[![:space:]]}"}" echo "+ Cadena sin espacios [${cadena}]" Resultado de la ejecución : + Cadena original [ prueba de trim ] + Cadena sin espacios [prueba de trim] |
Si por ejemplo queremos que todos los ficheros del directorio /etc que terminen con .conf sean movidos a un directorio especifico (En este ejemplo /backup), utilizaremos xargs con la opción -I, de la siguiente manera:
find /etc -iname «*.conf» | xargs -I ARG cp ARG /backup
Donde lo que escribamos delante de el primer ARG será el primer argumento y lo que escribamos delante de el segundo ARG será el tercer argumento, y el resultado del find seria el segundo, el comando anterior estaría haciendo lo siguiente:
cp /etc/prueba.conf /backup
cp /etc/prueba2.conf /backup
cp /etc/prueba3.conf /backup
cp /etc/prueba4.conf /backup
cp /etc/prueba5.conf /backup
cp /etc/prueba6.conf /backup
cp /etc/prueba7.conf /backup
…
1 2 3 4 5 6 7 8 9 10 11 |
@echo off rem Sacando la ruta de un ejecutable activo. (cd %homedrive%\) :Code (cls) (set /p proceso=Nombre de proceso : ) (if not defined proceso (goto:Code)) for /f "tokens=*" %%x in ('wmic process get executablepath ^| find /i "%proceso%"') do (set ruta=%%x) (echo %ruta%) (pause>nul) (goto:eof) |