Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2012, 19:10
Avatar de CapacProg
CapacProg
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 71
Problema Script Bash

Hola, es la primera vez que estoy programando para mi curso de programación de scripts en Ubuntu y al tratar de resolver mi trabajo tengo dificultades.
Cuando ejecuto el script como $./calc.sh -b 1 + 2 3 + 4, me sale que mi variable OPER no es reconocida, otro problema que tengo es que expr no me evalúa la expresión que deseo calcular, agradecería me puedan guiar.

Código script:
Ver original
  1. #!/bin/sh
  2. if [ $# -eq 0 ]; then
  3.     echo "use: $0 | -b <operando1> <operador1> <operando1> ... <operandoN> <operadorN> <operandoN>" >&2
  4.     exit 1
  5. else
  6.     #verificamos la opcion
  7.     PARAMS=$#
  8.     case $1 in
  9.         -b)CONT=0
  10.         for DATO in $@; do 
  11.                 case $DATO in
  12.                     -b)
  13.                     ;;
  14.                     +|-|\*|/)OPER = $DATO
  15.                     ;;
  16.                     *) if [ $CONT -eq 0 ]; then
  17.                         NUM1=$DATO
  18.                         (( ++CONT ))
  19.                      else  
  20.                         echo expr $NUM1 $OPER $DATO
  21.                         (( CONT = 0 ))
  22.                      fi;;
  23.                 esac
  24.             done
  25.             exit;;
  26.         *)       
  27.         if [[ $(( $((PARAMS - 1)) % 3 ))  = 0 ]]; then
  28.                 echo "falta"
  29.             else
  30.                 echo "La cantidad de parametros en la opcion debe ser multiplo de 3" >&2
  31.             fi;;
  32.     esac
  33. fi
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%