shell script

Iniciado por EMPICAL, 20 Mayo 2003, 20:34 PM

0 Miembros y 1 Visitante están viendo este tema.

..sR. aDiKtO..

La shell por defecto de solaris creo que es ksh, y en solaris si que hay bash. Por lo que el script tiene que funcionar en solaris.
SALU2

terku

Hola a todos;

En primer lugar he de felicitaros por la pagina y por el foro. En particular este post acerca de shell scripts esta genial.

Me preguntaba si me podrían ayudar: tengo que referenciar Y MODIFICAR una variable shell dentro de un módulo de procesado awk.

Supongamos que tengo la variable shell maximo=11.
Dentro de mi modulo awk puedo hacer cosas como
    print '$maximo' y visualizaría el valor 11

Mi problema está cuando intento modificar dicha variable;
por ejemplo 'maximo'=70; al ejecutar el script el motor de awk no se queja pero la variable maximo no se modifica.

Espero me puedan ayudar; saludos a todos y gracias.

La suerte está hechada

..sR. aDiKtO..

Ese mismo problema he tenido yo varias veces, y no he encontrado la solucion, ya que para que el awk funcione las ordenes tienes que estar entre comillas simples, siendo estas las comillas mas fuertes que hay, y por lo tanto las variables externas no las reconoce. Si en lugar de comillas simples fueran dobles se podria hacer sin mas, pero siendo doble no se puede hacer.
SALU2

ghz_amd

Buenas, Sr.Adikto, tengo un problem al compilar su script para borrar los logs, tiene buena pinta y me jode que no me rule =(

me salen unos cuantos errores, aver si podez ayudarme, graxxx

bytesss

Citarclean.c:1:2: directiva de preprocesamiento #! inválida
clean.c:3: error sintáctico en el elemento '##'
clean.c:4:3: directiva de preprocesamiento #"adk.sh v0.1" inválida
clean.c:6:3: directiva de preprocesamiento #Este inválida
clean.c:7:3: directiva de preprocesamiento #que inválida
clean.c:8:3: directiva de preprocesamiento #de inválida
clean.c:10:3: directiva de preprocesamiento #Este inválida
clean.c:11:3: directiva de preprocesamiento #no inválida
clean.c:12:3: directiva de preprocesamiento #licencia inválida
clean.c:13:3: directiva de preprocesamiento #Foundation inválida
clean.c:14: error sintáctico en el elemento '##'
clean.c:16:3: directiva de preprocesamiento #Variable inválida
clean.c:19: error sintáctico en el elemento '##'
clean.c:20:3: directiva de preprocesamiento #Funcion inválida
clean.c:21: error sintáctico en el elemento '##'
clean.c:22: aviso: asignación de valores iniciales crea un entero desde un apuntador sin una conversión
clean.c:22: error de decodificación antes de "function"
clean.c:25: '`' parásito en el programa
clean.c:27: '\302' parásito en el programa
clean.c:27: '\240' parásito en el programa
clean.c:28: '\302' parásito en el programa
clean.c:28: '\240' parásito en el programa
clean.c:29: '\302' parásito en el programa
clean.c:29: '\240' parásito en el programa
clean.c:30: '\302' parásito en el programa
clean.c:30: '\240' parásito en el programa
clean.c:30: '\302' parásito en el programa
clean.c:30: '\240' parásito en el programa
clean.c:30: '\302' parásito en el programa
clean.c:30: '\240' parásito en el programa
clean.c:31: '\302' parásito en el programa
clean.c:31: '\240' parásito en el programa
clean.c:31: '\302' parásito en el programa
clean.c:31: '\240' parásito en el programa
clean.c:31: '\302' parásito en el programa
clean.c:31: '\240' parásito en el programa
clean.c:31:20: aviso: constante de carácter demasiado larga
clean.c:32: '\302' parásito en el programa
clean.c:32: '\240' parásito en el programa
clean.c:32: '\302' parásito en el programa
clean.c:32: '\240' parásito en el programa
clean.c:33: '\302' parásito en el programa
clean.c:33: '\240' parásito en el programa
clean.c:34: '\302' parásito en el programa
clean.c:34: '\240' parásito en el programa
clean.c:35: '\302' parásito en el programa
clean.c:35: '\240' parásito en el programa
clean.c:35: '\302' parásito en el programa
clean.c:36: '\302' parásito en el programa
clean.c:36: '\240' parásito en el programa
clean.c:37: '\302' parásito en el programa
clean.c:37: '\240' parásito en el programa
clean.c:43: error sintáctico en el elemento '##'
clean.c:44:2: directiva de preprocesamiento #Funcion inválida
clean.c:45: error sintáctico en el elemento '##'
clean.c:50: '\302' parásito en el programa
clean.c:50: '\240' parásito en el programa
clean.c:51: '\302' parásito en el programa
clean.c:51: '\240' parásito en el programa
http://www.tbc-labz.org
-Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he aquí el verdadero saber-

..sR. aDiKtO..

Los shell script no se compilan. Te recomiendo que te leas todo el hilo y no solo el del adk.sh (el bash script que borra tu IP). En los 2 primeros post encontraras que un shell script se ejecuta con:
sh shell_script.sh
ó...
bash  shell_script.sh
ó...
ksh  shell_script.sh
ó...

O dandole permisos al  shell_script.sh con:
chmod u+x  shell_script.sh
Y despues ejecutandolo:
./ shell_script.sh



Por otro lado te recomiendo que leas el shell script antes de ejecutarlo, yo lo he provado y funciona perfectamente, pero es recomendable saber que es lo que hace.
Por ejemplo tienes que cambiar:
IP="127.0.0.1"
Por tu IP.

Y que el shell script tarda un ratito en hacer toda la faena.

Salu2

ghz_amd

lo de cambiar el codigo ya sabia que debia hacerlo, muchas gracias, pense que se compilaba tambien, sorry por la ignor4nc1a, y graciaz de nuevo.

bytesss ;)
http://www.tbc-labz.org
-Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he aquí el verdadero saber-

Mr. Anderson

Bueno, les presento mi proyecto en el cual estuve trabajando horas y dias y aun sigo mejorandolo, se llama Netin y actualmente está en su version 1.0, les comento que es un programa el cual sirve para configurar dispositivos de red, solo ethernet por el momento, tiene para configurar dispositivos ADSL, no tanto los dispositivos pero sí su configuracion, DNS´s, baja paquetes y sirve para todas las distros (o la mayoría, si no llega a funcionarte en alguna, hacemelo saber y le pongo soporte para ella). Y bueno, en fin les pongo los links y si tienen alguna duda, sugerencia o algo por decir, diganlo, espero opiniones, que la disfruten!, será actualizada con nuevas mejoras y demás, de paso tambien les pongo el changelog.
ACLARACION: Para bajarlo, click derecho y "guardar como", porque si lo abren asi nomás, les sale el codigo por el navegador.

LINKS DE VERSION ACTUALIZADA

Netin-1.0

Changelog

Distribuido bajo licencia GPL, se puede reproducir y/o modificar siempre y cuando se respete la autenticidad del autor, para mas informacion visite http://www.gnu.org/licenses/licenses.es.html para ver la licencia en español.

SALUDOS

ghz_amd

#17
Buenas, tengo una duda, como llamo a las funciones que he definido? es decir, yo meto
functio x {
aqui meto el contenido de la funcion
}

como hago para que al poner x se ejecute¿?

nose se si me explico....un saludo ;)
http://www.tbc-labz.org
-Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he aquí el verdadero saber-

..sR. aDiKtO..

#18
 Simplemente tienes que llamar a la funcion despues de haberla creado, como en ANSI C. Pongo el script que antes has posteado:
Código (bash) [Seleccionar]
########################
 #Funcion  xpl w00t     #                    
 ########################
 function main()
{
 ./w00t
 id
 echo

while true
do
  echo -e '\033[0;31m You are lucky!! ****SYSTEM ROOTED**** \033[0m'
  if [ $GROUPS = 0 ]
  then
  exit
 fi
done
 echo -e '\033[0;31m Trying with another xploit... \033[0m'
}

# Introduce aqui las funciones o las ordenes que quieras
# Luego llamas a un metodo, por ejemplo al main
main  
# Y luego introduce aqui las funciones o ordenes que quieras


Salu2

ghz_amd

tio, no entiendo bien o noseke, yo hago el
function main, pongo lo que quiero que haga esa funcion, y despues en el codigo, le pongo main y al ejecutar me dice que no existe el comando main xDD lo toma como un comando :S
http://www.tbc-labz.org
-Saber que se sabe lo que se sabe y que no se sabe lo que no se sabe; he aquí el verdadero saber-