The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
tirar con fuerza de error: unix script dr46014 UNIX for Dummies Preguntas y Respuestas 1 10-01-2008 04:42 AM
awk script error: "Error de sintaxis:" Split "inesperado Herry UNIX for Dummies Preguntas y Respuestas 2 03-17-2008 11:16 AM
Error al intentar un incendio PL / SQL de secuencias de comandos de Unix Thro dharmesht Programación de scripts de shell y 5 12-11-2003 10:10 AM
UNIX de registro de errores eysheikah Seguridad 3 05-31-2003 09:21 AM
SCO UNIX error 6, AYUDA PBNOSGT UNIX for Dummies Preguntas y Respuestas 0 02-01-2002 11:46 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 03-18-2009
joyrules joyrules is offline
Usuario Registrado
  
 

Fecha: marzo 2009
Publicaciones: 3
Error de secuencias de comandos en Unix

Hola!
Lo que sigue es la secuencia de comandos para encontrar el número de usuarios y el espacio total consumida por ellos en el directorio
Pero estoy recibiendo pocos errores, Pls que me ayude
Código:
data=`ls -lt $1 |tr -t [' '] ['\t']|tr -s '\t'|cut -f3,5`

count=0

flag=1

sum=0

users_flag=1

check=0

declare -a users

for a in $data

do

	if [ $users_flag -eq 1 ]

	then

		for ((i = 0; $i <= count; $i++))

		do

			if [ $a = ${users[$count]} ]

			then

				flag=0

				break

			fi

		done

		if [ $flag  -eq 1 ]

		then

			users[$count]=$a

			count=expr`$count + 1`

			echo $a >> userdata

		fi

		users_flag=0

	else

		if [ $flag -eq 1 ]

		then

			

			for b in $data

			do

				if [ $check -eq 0 ]

				then

					if [ $b = $a ]

					then 

						check=1

					fi

				else

					sum=`expr $sum + $b`

					check=0

				fi 

			done

		fi

	fi

done

Los errores se
Q3: 7: declarar: que no se encuentra
q3: 9: Error de sintaxis: palabra inesperados (esperando "hacer")

Última edición por joyrules; al 03-18-2009 10:39 AM.. Motivo: formato script
  #2 (Enlace permanente)  
Old 03-18-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Fecha: diciembre 2007
Ubicación: Casa de 17-veces campeón mundial de Boston Celtics
Puestos: 1.311
Cool Por favor, publicar tu código utilizando CODETAGS

Una vez que pegue la secuencia de comandos, resáltelo y haga clic en el número que figura en el bar por encima de los iconos, lo que mantendrá el formato. Esto hace que sea mucho más fácil seguir el código y las distintas condiciones.
  #3 (Enlace permanente)  
Old 03-18-2009
joyrules joyrules is offline
Usuario Registrado
  
 

Fecha: marzo 2009
Publicaciones: 3
Agin de comandos de formato

Código:
data=`ls -lt $1 |tr -t [' '] ['\t']|tr -s '\t'|cut -f3,5` 
count=0 
flag=1 
sum=0 
users_flag=1 
check=0 
declare -a users 
for a in $data 
do 
    if [ $users_flag -eq 1 ] 
    then 
        for ((i = 0; $i <= count; $i++)) 
        do 
            if [ $a = ${users[$count]} ] 
            then 
                flag=0 
                break 
            fi 
        done 
        if [ $flag  -eq 1 ] 
        then 
            users[$count]=$a 
            count=expr`$count + 1` 
            echo $a >> userdata 
        fi 
        users_flag=0 
    else 
        if [ $flag -eq 1 ] 
        then 
             
            for b in $data 
            do 
                if [ $check -eq 0 ] 
                then 
                    if [ $b = $a ] 
                    then  
                        check=1 
                    fi 
                else 
                    sum=`expr $sum + $b` 
                    check=0 
                fi  
            done 
        fi 
    fi 
done
  #4 (Enlace permanente)  
Old 03-18-2009
joyrules joyrules is offline
Usuario Registrado
  
 

Fecha: marzo 2009
Publicaciones: 3
Gracias

Gracias Joyeg
  #5 (Enlace permanente)  
Old 03-18-2009
metilo methyl is offline
Usuario Registrado
  
 

Fecha: marzo 2008
Puestos: 1.183
¿Qué versión de Unix / Linux?
uname-a

Que concha? ¿Se trata de "sh", "ksh", "bash" o qué?
echo $ SHELL

Por favor, mostrar un ejemplo de lo que la salida de la secuencia de comandos debe ser similar y si usted cuenta los tamaños de directorios, así como el tamaño de los archivos hacia el total de cada usuario.

Sírvase indicar si hay subdirectorios en el directorio que se desea analizar.
  #6 (Enlace permanente)  
Old 03-18-2009
angad.makkar angad.makkar is offline
Usuario Registrado
  
 

Fecha: marzo 2009
Puestos: 16
Thumbs up Esto funciona ....

Hola Joyeg ....

Intente esto:
Código:
#!/bin/bash

declare -a name_arr
declare -a size_arr

i=0 
for files in `ls`
do
   name=`ls -l $files | awk '{print $3}'`
   size=`ls -l $files | awk '{print $5}'`

   if [ $i -eq 0 ]
   then
      name_arr[$i]=`echo $name`
      size_arr[$i]=`echo $size`
      i=`expr $i + 1`
   else
      j=0
      while [ $j -lt $i ]
      do
         if [ "${name_arr[$j]}" = "$name" ]
         then
	    size_arr[$j]=`expr ${size_arr[$j]} + $size`
	    break
         else
	    name_arr[$i]=`echo $name`
	    size_arr[$i]=`echo $size`
	    i=`expr $i + 1`
         fi
         j=`expr $j + 1`
      done
   fi
done

j=0
while [ $j -lt $i ]
do
	echo "${name_arr[$j]} : ${size_arr[$j]}"
	j=`expr $j + 1`
done
Lemme saber en caso de cualquier problema


Además, para declarar su error, pruebe a ejecutar su script en el shell bash.
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 10:34 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0