programacion shell script

Imagen de SiMa Cheng

Forums: 

Buenas, eh aqui un ejemplo que ahora estoy estudiando (script shell) y se me complica mucho entenderlo porque en el libro que estudio (Manual linux eminentemente practico, zonasiete.org) no especifica que significan algunas lineas en el codigo y lo da como "sobre entendido" sin haberlo explicado antes (cosa rara), entonces no comprendo que sucede aqui y como trabaja exactamente... no comprendo las siguientes lineas:
2-> dentro de la operacion aritmetica "[ ]" (que es como test) y que es "-ne"?
14-> igual que el anterior todo lo que esta dentro de "[ ]" y que es "! -e"?
19-> todo lo que esta dentro de "[ ]" y el "0"?
Y por ultimo que debo poner en $FICHERO y $BUSQUEDA (Esta tal vez sea tonto, pero para estar seguro, porque eh puesto el nombre de un archivo y una ruta y no funciona, tal vez entendi mal yo).
Bien, desde ya valoro mucho que lean este post, igual muchas gracias a las personas que no puedan ayudar, tambien intentare buscar en algun otro manual las soluciones nos vemos. :)

1 #!/bin/bash
2 if [ $# -ne 2 ]; then
3 echo "Necesito dos argumentos, el primero"
4 exho "es el fichero donde debo buscar y"
5 echo "el segundo es lo que quieres que"
6 echo "busque."
7 echo " "
8 echo "Eso: $0 "
9 echo " "
10 exit
11 if
12 FICHERO=$1
13 BUSQUEDA=$2
14 if [ ! -e $FICHERO ]; then
15 echo "El fichero no existe"
16 exit
17 fi
18 NUM_VECES=`cat "$FICHERO | grep --count "$BUSQUEDA"`
19 if [ $NUM_VECES -eq 0 ]; then
20 echo "El patron de busqueda \"$BUSQUEDA\" no fue encontrado"
21 echo "en el fichero $FICHERO "
22 else
23 echo "El patron de busqueda \"$BUSQUEDA\" fue encontrado"
24 echo "en el fichero $FICHERO $NUM_VECES veces"

Pues parece que no has

Imagen de Root Bit

Pues parece que no has estudiado lo suficiente, una leida al como de programacion en BASH hubiera despejado tus dudas, revisa este manual:

http://www.insflug.org/detalle.php3?comoID=121

There are only 10 types people in the world:
Those who understand binary and those who don't

There are only 10 types people in the world:
Those who understand binary and those who don't

marcos-cheng ha escrito: 2->

Imagen de deathUser

[quote=marcos-cheng]
2-> dentro de la operacion aritmetica "[ ]" (que es como test) y que es "-ne"?
[/quote]
Los [] interpretan el valor de verdad de la expresión encerrada entre ellos.
el -ne significa "not equal"
[quote]
14-> igual que el anterior todo lo que esta dentro de "[ ]" y que es "! -e"?
[/quote]
Pregunta si no existe el archivo.
[quote]
19-> todo lo que esta dentro de "[ ]" y el "0"?
[/quote]
La línea 19 dice:

if [ $NUM_VECES -eq 0 ]; then

Compara la variable $NUM_VECES con "0"
[quote]
Y por ultimo que debo poner en $FICHERO y $BUSQUEDA (Esta tal vez sea tonto, ...
[/quote]
$FICHERO $BUSQUEDA
Son nombres de variables, las mismas que se inicializan con los argumentos pasados al script al momento de su ejecución, si reemplazas la variable con el nombre del archivo, debería dar el mismo resultado que pasar esa información como argumento del script, de hecho, una buena practica es hacer las pruebas de esta manera, y luego reemplazar por variables y argumentos y colocar el resto de la lógica del scritp.

Lee los manuales, man bash te puede orientar bastante.

bye
:)

Gracias foristas :)

Imagen de SiMa Cheng

Bueno antes que nada pido disculpas por la demora de mi respuesta y decirles gracias, eh leido atentamente y eh estudiado los consejos de todos, suerte bye...

SiMa Cheng - GnuLinux