zeilen summieren | ausgabe einer datei in variable setzen

Bash, Shell, PHP, Python, Perl, CGI
inswe.de
Posts: 9
Joined: 2003-05-14 14:21
Location: Wesel

zeilen summieren | ausgabe einer datei in variable setzen

Post by inswe.de »

moin,

ich hab 2 sachen, wo ich auch mit hilfe von google nich weiter komme.
also, hab nen shell script hier, dass per

Code: Select all

ls -l VERZEICHNIS >$TMPF
das ls in eine temporäre datei packt,
daraus lese ich die 5. spalte mit

Code: Select all

while read D1 D2 D3 D4 D5 REST ; do
aus.
nun möchte ich alle zeilen summieren lassen,
per

Code: Select all

SUM=`expr $SUM + $D5`
oder

Code: Select all

let SUM=$SUM+$D5
blieb ich aber bisher erfolglos. kann mir da jmd. helfen?

zu meiner 2. frage:
ich möchte in einem anderen script die ausgabe des o.a. scriptes (eine ganze zahl) in eine variable legen, um diese z.b. in eine "if" schleife zu legen.

Code: Select all

if $AUSGABE-AUS-ERSTEM-SCRIPT < $ZAHL-AUS-EINER-BESTIMMTEN-DATEI then bla
Anonymous

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by Anonymous »

Du kennst du?

Karlo
Anonymous

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by Anonymous »

Hast Glueck das mich das interessiert hat :-)

typeset -i D5
typeset -i SUM
while read D1 D2 D3 D4 D5 REST
do
echo $D5
SUM=`expr $SUM + $D5`
done < <(ls -l)

echo Summe = $SUM

Karlo
inswe.de
Posts: 9
Joined: 2003-05-14 14:21
Location: Wesel

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by inswe.de »

Karlo wrote:Du kennst du?

Karlo
sicher, ich will als ausgabe aber nur eine ganze zahl

Karlo wrote:Hast Glueck das mich das interessiert hat

typeset -i D5
typeset -i SUM
while read D1 D2 D3 D4 D5 REST
do
echo $D5
SUM=`expr $SUM + $D5`
done < <(ls -l)

echo Summe = $SUM
Danke, werds gleich mal probieren.
inswe.de
Posts: 9
Joined: 2003-05-14 14:21
Location: Wesel

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by inswe.de »

Karlo wrote:Hast Glueck das mich das interessiert hat :-)

done < <(ls -l)

Karlo
Das ergibt folgenden fehler:

Code: Select all

./usage.sh: line 13: syntax error near unexpected token `<('
./usage.sh: line 13: `done < <(ls -l)'
lass ich diese zeile auf

Code: Select all

done < $TMPF
stehen, funktioniert es halbwegs, und zwar nur. wenn ls mit $* angegeben ist, also im aktuellen verzeichnis:

Code: Select all

ls -l $* >$TMPF
ändere ich das verzeichnis oder benutze (usage.sh ist das script)

Code: Select all

./usage.sh VERZ
ergibt das ganze

Code: Select all

0 MB
Edit:
hier mal als beispiel:

script:

Code: Select all

#!/bin/sh
# Calculate the amount of space used by the specified files
# Default is the actual directory
SUM=0
TMPF=$HOME/temp.usage
ls -l $* >$TMPF
typeset -i D5
typeset -i SUM
while read D1 D2 D3 D4 D5 REST ; do
#     SUM=`expr $SUM + $D5 / 1024`
#echo $D5
SUM=`expr $SUM + $D5 / 1048576`
done < $TMPF
echo "$SUM MB"
rm $TMPF
und das ergebnis:

Code: Select all

[root@platon root]# ./usage.sh
12 MB
[root@platon root]# ./usage.sh /www
0 MB
[root@platon root]# ./usage.sh /www/
0 MB
[root@platon root]#
Anonymous

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by Anonymous »

#!/bin/sh

versuch mal bin/bash

bei mir laeuft das Beispiel einwandfrei

Karlo
inswe.de
Posts: 9
Joined: 2003-05-14 14:21
Location: Wesel

Re: zeilen summieren | ausgabe einer datei in variable setzen

Post by inswe.de »

Karlo wrote:#!/bin/sh

versuch mal bin/bash

bei mir laeuft das Beispiel einwandfrei

Karlo
auch

Code: Select all

#!/bin/bash
bringt es nicht.
könntest du mir bitte mal deine version des scriptes pasten und wie du das script startest?

so starte ich es:

Code: Select all

[root@platon root]# ./usage.sh
12 MB
[root@platon root]# ./usage.sh /www
0 MB
[root@platon root]#
und das verz (z.b. /www) ist nicht leer!