The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
jeter avec force erreur: unix script dr46014 UNIX pour les nuls Questions et réponses 1 10-01-2008 04:42 AM
awk Shell Script erreur: "Erreur de syntaxe:« Split »inattendu Herry UNIX pour les nuls Questions et réponses 2 03-17-2008 11:16 AM
Erreur lors de l'incendie a PL / SQL Script Unix thro dharmesht De programmation et de script Shell 5 12-11-2003 10:10 AM
UNIX journal des erreurs eysheikah Sécurité 3 05-31-2003 09:21 AM
SCO UNIX erreur 6, HELP PBNOSGT UNIX pour les nuls Questions et réponses 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 Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-18-2009
joyrules joyrules is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 3
Erreur dans le script Unix

Salut!
Voici le script pour trouver le nombre d'utilisateurs et de l'espace total consommé par les dans le répertoire
Mais je commence à en avoir quelques erreurs SVP aidez-moi

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


Les erreurs sont
q3: 7: déclarer: pas trouvé
q3: 9: erreur de syntaxe: mot inattendu (attendent "do")

Dernière édition par joyrules; au 03.18.2009 10:39 AM.. Motif: Formatted script
  #2 (permalink)  
Old 03-18-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Join Date: Dec 2007
Lieu: Accueil de 17-champion du monde Boston Celtics
Messages: 1311
Cool S'il vous plaît publier votre code en utilisant CODETAGS

Une fois que vous collez votre script, sélectionnez-la et cliquez sur le # sur la barre d'icônes ci-dessus, cela permet de garder la mise en forme. Cela le rend beaucoup plus facile de suivre le code et les différentes conditions.
  #3 (permalink)  
Old 03-18-2009
joyrules joyrules is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 3
Agin Script Formatted


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
Registered User
  
 

Date d'inscription: mars 2009
Messages: 3
Merci

Merci Joyeg
  #5 (permalink)  
Old 03-18-2009
méthyle methyl is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 1184
Quelle version de unix / linux?
uname-a

Quel shell? Est-ce que c'est "sh", "ksh", "bash" ou quoi?
echo $ SHELL

S'il vous plaît montrer un exemple de ce que la sortie du script devrait ressembler et si vous comptez le répertoire ainsi que les tailles des tailles de fichiers vers l'utilisateur par utilisateur total.

S'il vous plaît indiquer si il ya des sous-répertoires dans le répertoire que vous souhaitez analyser.
  #6 (permalink)  
Old 03-18-2009
angad.makkar angad.makkar is offline
Registered User
  
 

Date d'inscription: mars 2009
Posts: 16
Thumbs up Cela fonctionne ....

Salut Joyeg ....

Essayez ceci:

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 savoir en cas de problème


Aussi, pour votre déclaration d'erreur, essayez d'exécuter votre script en shell bash.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 03:55 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0