![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
#1 (permalänk)
|
||||
|
||||
|
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)
|
|||||
|
|||||
|
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)
|
||||
|
||||
|
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)
|
||||
|
||||
|
Tack
Tack Joyeg
|
|
#5 (permalänk)
|
||||
|
||||
|
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)
|
||||
|
||||
|
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. |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|