The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
forcefully throwing feil: unix skript dr46014 UNIX for Dummies Spørsmål og svar 1 10-01-2008 04:42
awk Shell Script feil: "Syntaksfeil:` Split "uventet Herry UNIX for Dummies Spørsmål og svar 2 03-17-2008 11:16
Feil under forsøk på å fire en PL / SQL thro Unix Script dharmesht Shell programmering og Skripting 5 12-11-2003 10:10
UNIX feillogg eysheikah Sikkerhet 3 05-31-2003 09:21
SCO UNIX feil 6, HJELP PBNOSGT UNIX for Dummies Spørsmål og svar 0 02-01-2002 11:46

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 03-18-2009
joyrules joyrules is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 3
Feil i Unix Script

Hei!
Følgende er skriften å finne antallet brukere og den totale plassen brukes av dem i katalogen
Men jeg får noen feil Pls hjelpe meg
Code:
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

Feil
Q3: 7: erklærer: Finner ikke
3: 9: Syntaksfeil: Ordet uventet (forventet "do")

Sist endret av joyrules; 03-18-2009 kl 10:39.. Reason: Formatert script
  #2 (permalink)  
Old 03-18-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Bli Dato: desember 2007
Sted: Hjemme i 17-tiden verdensmesteren Boston Celtics
Innlegg: 1311
Cool Vennligst hvile koden din ved hjelp CODETAGS

Når du limer skriptet, merk den og klikk på # på ikonene linjen ovenfor; dette vil beholde formateringen. Dette gjør det mye enklere å følge koden og de ulike forhold.
  #3 (permalink)  
Old 03-18-2009
joyrules joyrules is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 3
Agin Script Formatert

Code:
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 (permalink)  
Old 03-18-2009
joyrules joyrules is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 3
Takk

Takk Joyeg
  #5 (permalink)  
Old 03-18-2009
metyl methyl is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 1175
Hvilken versjon av Unix / Linux?
uname-a

Hvilket shell? Er dette "sh", "ksh", "bash" eller hva?
echo $ SHELL

Kan du vise et eksempel på hva resultatet av manuset skal se ut og opplyse om du teller katalog størrelser samt filstørrelser mot per-bruker totalt.

Vennligst oppgi om det er underkataloger i katalogen du ønsker å analysere.
  #6 (permalink)  
Old 03-18-2009
angad.makkar angad.makkar is offline
Registrert bruker
  
 

Bli Date: Mar 2009
Innlegg: 16
Thumbs up Dette fungerer ....

Hei Joyeg ....

Bare prøv dette:
Code:
#!/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 vite incase av noe problem


Også for din erklærer feil, prøv å kjøre skriptet i bash shell.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er PÃ¥
Smilefjes er PÃ¥
[IMG] koden PÃ¥
HTML-koden Av
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle klokkeslett er GMT -4. NÃ¥ er klokken 01:59.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0