The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
kraftfullt kastar fel: UNIX script dr46014 UNIX for Dummies Frågor & Svar 1 10-01-2008 04:42
awk Shell skriptfel: "Syntaxfel:" Split "oväntade Herry UNIX for Dummies Frågor & Svar 2 03-17-2008 11:16
Fel vid försök att branden ett PL / SQL thro Unix Script dharmesht Shell-programmering och Skript 5 12-11-2003 10:10
UNIX error log eysheikah Säkerhet 3 05-31-2003 09:21
SCO UNIX fel 6, HJÄLP PBNOSGT UNIX for Dummies Frågor & 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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 03-18-2009
joyrules joyrules is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 3
Fel i Unix Script

Hej!
Följande är skriptet att hitta antalet användare och det totala utrymmet som förbrukas av dem i katalogen
Men jag får några fel Pls help me

Kod:
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


Fel
Q3: 7: deklarera: Not found
Q3: 9: Syntax error: ordet oväntade (väntar "do")

Senast redigerad av joyrules; 03-18-2009 at 10:39.. Anledning: Formaterat script
  #2 (permalänk)  
Old 03-18-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2007
Ort: Home av 17-Temne världen mästare Boston Celtics
Inlägg: 1311
Cool Please repost din kod med CODETAGS

När du klistrar in manuset, markera den och klicka sedan på # på ikonerna bar över, vilket kommer att hålla formatering. Detta gör det mycket lättare att följa koden och de olika villkor.
  #3 (permalänk)  
Old 03-18-2009
joyrules joyrules is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 3
Agin Script Formaterad


Kod:
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 (permalänk)  
Old 03-18-2009
joyrules joyrules is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 3
Tack

Tack Joyeg
  #5 (permalänk)  
Old 03-18-2009
metyl methyl is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 1184
Vilken version av Unix / Linux?
uname-a

Vilket skal? Är detta "sh", "IR", "bash" eller vad?
echo $ SHELL

Vänligen visa ett exempel på vad produktionen av skriptet ska se ut och meddela om du räknar katalog storlekar samt filstorlekar mot per användare totalt.

Ange om det finns underkataloger i katalogen du vill analysera.
  #6 (permalänk)  
Old 03-18-2009
angad.makkar angad.makkar is offline
Registered User
  
 

Join Date: mars 2009
Inlägg: 16
Thumbs up Detta fungerar ....

Hej Joyeg ....

Just try this out:

Kod:
#!/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 veta Incase av alla problem


Också, för du förklara, kan du försöka köra skript i bash shell.
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 11:56.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0