![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
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. |
|
||||
|
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. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|