The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
sintesi linea uwork72 Shell scripting e di programmazione 4 09-07-2008 09:56 AM
Come sintesi di un comando della CPU? jiarong.lu HP-UX 1 02-22-2008 AM 11:03
grep esecuzione totale / finale totale su più file Mrad UNIX for Dummies Domande & Risposte 5 05-08-2007 02:03 PM
Strumenti di sistema vader UNIX for Dummies Domande & Risposte 2 07-03-2002 03:28 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-22-2009
xiaojesus xiaojesus is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 20
come aggiungere un totale di una relazione di sintesi?

Ciao a tutti ho uno script, ma i cant aggiungere la relazione di sintesi .. mantenere aver synax errore. mente mi aiuta a dare un'occhiata e dirmi che cosa sia andato storto ..

So che è un po 'lunga, ma spero che qualcuno mi può hep con esso. grazie

il messaggio di errore compare quando si tenta di eseguire il rapporto di sintesi ..

I guess 1 del problema è il sistema date.thing.

il problema è sul punto di vendita.

Sto cercando di aggiungere le tutte le vendite al giorno e poi hanno un totale di tutte le vendite di tutti i giorni.
qui di seguito è il codice.




Codice:
# Global variables
POS=~/.Point_Of_Sales
POS=POS.txt
export POS

confirm()
{
  echo -en "$@"
  read ans
  ans=`echo $ans | tr '[a-z]' '[A-Z]'`
  if [ "$ans" == "Y" ]; then
    return 0
  else
    return 1
  fi
}

num_lines()
{
  grep -i "$@" $POS|wc -l| awk '{ print $1 }'
}

find_lines()
{
  # Find lines matching $1
  res=-1
  if [ ! -z "$1" ]; then
    grep -i "$@" $POS
    res=$?
  fi
  return $res
}

list_items()
{
  # List items matching given search criteria
  if [ "$#" -eq "0" ]; then
    echo -en "Search for: (return to list all) "
    read search
    if [ -z "$search" ]; then
      search="."
    fi
    echo
  else
    search="$@"
  fi
  find_lines "${search}" | while read i
  do
    echo "$i" | tr ':' '\t'
  done
  echo -en "Matches found: "
  num_lines "$search"
}

add_item()
{
  echo "Add Item: You will be prompted for 3 items:"
  echo "- Item Description, Unit Price, Quantity Purchased -"
  echo
  echo -en "Item Description:"
  read product
  echo -en "Unit Price:"
  read Unit_Price
  echo -en "Quantity:"
  read Quantity
  Date_Purchased=$(date +"%d %b %Y")  
  

  echo "${product}:${Unit_Price}:${Quantity}:${Date_Purchased}" >> $POS
}

locate_single_item()
{
  echo -en "Item to search for: "
  read search
  n=`num_lines "$search"`
  if [ -z "$n" ]; then
    n=0
  fi
  while [ "${n}" -ne "1" ]; do
    #list_items "$search"
    echo -en "${n} matches found. Please choose a "
    case "$n" in 
      "0") echo "less" ;;
      "*") echo "more" ;;
    esac
    echo "specific search term (q to return to menu): "
    read search
    if [ "$search" == "q" ]; then
      return 0
    fi
    n=`num_lines "$search"`
  done
  return `grep -in $search $POS |cut -d":" -f1`
}

remove_item()
{
  locate_single_item
  search=`head -$? $POS | tail -1|tr ' ' '.'`
  if [ -z "${search}" ]; then
    return
  fi
  list_items "$search"
  confirm "Remove?"
  if [ "$?" -eq "0" ]; then
    grep -v "$search" $POS > ${POS}.tmp ; mv ${POS}.tmp ${POS}
  else
    echo "NOT REMOVING"
  fi
}

edit_item()
{
  locate_single_item
  search=`head -$? $POS | tail -1|tr ' ' '.'`
  if [ -z "${search}" ]; then
    return
  fi
  list_items "$search"
  thisline=`grep -i "$search" $POS`
  oldProduct=`echo $thisline|cut -d":" -f1`
  oldUnitPrice=`echo $thisline|cut -d":" -f2`
  oldQuanity=`echo $thisline|cut -d":" -f3`
  echo "SEARCH : $search"
  grep -v "$search" $POS > ${POS}.tmp ; mv ${POS}.tmp ${POS}
  echo -en "Item Description: [ $oldProduct ] "
  read Product
  echo -en "Unit Price[ $oldUnitPrice ] "
  read Unit_Price
  echo -en "Quanity [ $oldQuanity ] "
  read Quanity
  Date_Purchased=$(date +"%d %b %Y")  
  echo "${Product}:${Unit_Price}:${Quanity}:${Date_Purchased}" >> $POS
}
summary_items()
{
  #echo "- - - POS Summary Report - - -"
  #echo "---------------------------"
  #echo "Date       Total POS"
  #echo "---------------------------"
  print_dtotal
  #echo "---------------------------"
  #print_gtotal
  #echo "---------------------------"
  #echo -en "Best Selling Product: "
  #print_bestsell
  #echo -en "Product with Highest POS: "
  #print_phighPOS
  #echo -en "Date with Highest POS: "
  print_dtotal | sort -f4| while read z
    do
        echo $z | cut -f4 -d' '
        return 0
    done
  echo
  echo -en "Press Enter to continue..."
  read
}
print_dtotal()
{
  count=0
  grep -i : $POS | cut -d: -f4 | sort -u | while read i
    do
        dtotal=0
    grep -i "$i" $POS | while read x
        do
            count=`expr $count + 1`
            temp1=`echo $x | cut -d: -f2 | cut -c2-`
            temp2=`echo $x | cut -d: -f3`
            temp3=`calcu_m $temp1 $temp2`
                        dtotal=`calcu_a $dtotal $temp3`
            n=`num_lines "$i"`
               if [ "${n}" -eq "${count}" ]; then
                echo  $i"        $"$dtotal
              fi
        done
    done 

}
print_gtotal()
{
  gtotal=0
  grep -i : $POS | while read x
    do
        temp1=`echo $x | cut -d: -f2 | cut -c2-`
        temp2=`echo $x | cut -d: -f3`
        temp3=`calcu_m $temp1 $temp2`
                gtotal=`calcu_a $gtotal $temp3`
        n=`num_lines "$i"`
           if [ "${n}" -eq "${count}" ]; then
            echo  "Grand Total      $"$gtotal
          fi
        count=`expr $count + 1`
    done 

}
print_bestsell()
{
   grep -i : $POS | sort -k4 -r -t: | while read bs
    do
           echo $bs | cut -d: -f1
        return 0
    done
}
print_phighPOS()
{
      count=0
        phigh="0.0"
    grep -i : $POS | while read x
        do
            count=`expr $count + 1`
            temp1=`echo $x | cut -d: -f2 | cut -c2-`
            temp2=`echo $x | cut -d: -f3`
            temp3=`calcu_m $temp1 $temp2`
            comparex $temp3 $phigh
               if [ "$?" -eq "0" ]; then
                phigh=$temp3
                phighx=`echo $x | cut -d: -f1`
              fi
            n=`num_lines ":"`
               if [ "${n}" -eq "${count}" ]; then
                echo  $phighx
              fi
        done
}
comparex()        # compare 2 decimal numbers $1 $2 eg 1.20 and 3.60
{
    x1=`echo $1 | cut -d. -f1`
    x2=`echo $1 | cut -d. -f2`
    y1=`echo $2 | cut -d. -f1`
    y2=`echo $2 | cut -d. -f2`
    if [ "${x1}" -gt "${y1}" ]; then
        return 0
    elif [ "${x1}" -eq "${y1}" ]; then
        if [ "${x2}" -gt "${y2}" ]; then
            return 0
        fi
    fi
    return 1
}
calcu_a()        # add 2 decimal numbers $1 $2
{
    x1=`echo $1 | cut -d. -f1`
    x2=`echo $1 | cut -d. -f2`
    y1=`echo $2 | cut -d. -f1`
    y2=`echo $2 | cut -d. -f2`
    x1=`expr $x1 + $y1`
    x2=`expr $x2 + $y2`
    x3=`expr $x2 \/ 100`
    x1=`expr $x1 + $x3`
    x2=`expr $x2 \% 100`
    echo $x1"."$x2
}
calcu_m()        # multiply 2 decimal numbers $1 $2
{
    x1=`echo $1 | cut -d. -f1`
    x2=`echo $1 | cut -d. -f2`
    y=`echo $2`
    x1=`expr $x1 \* $y`
    x2=`expr $x2 \* $y`
    x3=`expr $x2 \/ 100`
    x1=`expr $x1 + $x3`
    x2=`expr $x2 \% 100`
    echo $x1"."$x2
}
 

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 10:47 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0