![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
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. |
|
||||
|
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
Også for din erklærer feil, prøv å kjøre skriptet i bash shell. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|