Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Arne

ThI

  • "Arne" is male
  • "Arne" started this thread

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

1

Sunday, February 23rd 2003, 3:43pm

shell skript vom EBS Übungszettel

Folgendes Problem:
man soll ein shell-skript schreiben, welches aus den gegebenen variablen das min und das max bestimmt.
mit einer for-schleife habe ich es schon gelöst, daher wollte ich es - zu übungszwecken - mit einer while schleife mal lösen, jedoch meckert er nun shift: bad number und ich weiß nicht wieso ?(
mein skript:
#!/bin/ksh
max=$1
min=$1

vars=$#
while [ vars > 0 ]
do

if [ $1 > $max ]
then
max=$1
fi
if [ $1 < $min ]
then
min=$1
fi

shift 1
vars=$#
done

echo "min= "$min
echo "max= "$max

<hr>
wäre nett wenn mir geholfen werden kann... :rolleyes:
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Arne

ThI

  • "Arne" is male
  • "Arne" started this thread

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

2

Sunday, February 23rd 2003, 3:51pm

hab scho :D danke metalhen btw ;)
<,> muss man mit -lt und -gt übersetzen *grr*
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Benjamin

Segelnder Alter Hase

  • "Benjamin" is male

Posts: 3,827

Date of registration: Oct 1st 2002

Location: Region Hannover

Occupation: Alumni

3

Sunday, February 23rd 2003, 4:44pm

bidde :D
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

Jethro

Junior Schreiberling

  • "Jethro" is male

Posts: 185

Date of registration: Oct 15th 2002

4

Sunday, February 23rd 2003, 5:08pm

Hmmm, ich würd auch gern geholfen werde...
Und zwar bei der alten Klausur (Herbst 01) gibt es die Aufgabe:

Schreiben Sie ein Shellscript, das in der ihm übergegebenen Zeile von Parametern alle ungeraden Zahlen findet und ihre Summe am Bildschirm ausgibt.

Wie kann man den herausfinden ob eine Zahl ungerade ist? Gibt es dafür einen [geklammerte Vergleichoperator]
oder mir Division durch 2 und dann Restbestimmung (aber wie?) ?(

Wär nett wenn mir jemand hilft..
Information is like a mist, you have to breath it in

(De-Phazz - Information)

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

5

Sunday, February 23rd 2003, 5:49pm

Quoted

Original von Jethro
Schreiben Sie ein Shellscript, das in der ihm übergegebenen Zeile von Parametern alle ungeraden Zahlen findet und ihre Summe am Bildschirm ausgibt.

Wie kann man den herausfinden ob eine Zahl ungerade ist? Gibt es dafür einen [geklammerte Vergleichoperator]
oder mir Division durch 2 und dann Restbestimmung (aber wie?
Eine nicht-negative Zahl x ist gerade, wenn (x DIV 2) und ((x + 1) DIV 2) den selben Wert ergeben. (Für negative Zahlen geht das ähnlich, ich bin mir jetzt aber nicht sicher, ob man da +1 oder -1 schreiben muß. Am besten ausprobieren.)


Beispiele:

Ist 19 gerade?
19 DIV 2 = 9
20 DIV 2 = 10
=> 19 ist ungerade

Ist 22 gerade?
22 DIV 2 = 11
23 DIV 2 = 11
=> 22 ist gerade


Wie man das jetzt genau in einem ksh-Skript ausdrückt, weiß ich allerdings nicht auswendig. Dürfte aber eigentlich nicht allzu schwer sein.


PS: Ich sehe gerade, daß man mit der ksh auch Modulo ausdrücken kann. Das ist dann der %-Operator.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

sr409

Junior Schreiberling

Posts: 156

Date of registration: Jan 3rd 2003

6

Sunday, February 23rd 2003, 5:49pm

ich schätze so...


a=Zahl
b=$(($a / 2)) (Ist '/' das Divisionszeichen bei KSH ?)
c=$(($b * 2))

if [ $c -eq $a ]
then
echo Gerade
else
echo Nix Gerade
fi

sr409

Junior Schreiberling

Posts: 156

Date of registration: Jan 3rd 2003

7

Sunday, February 23rd 2003, 5:50pm

Da war wohl wieder einer schneller :D

PS: Ich geh mal davon aus dass das '/' ne ganzzahlige Division ist

Jethro

Junior Schreiberling

  • "Jethro" is male

Posts: 185

Date of registration: Oct 15th 2002

8

Sunday, February 23rd 2003, 6:11pm

Vielen Dank euch beiden :D

Okay, hier also die Musterlösung
-----------------------------------------
#! /bin/ksh
a=0

for x do
if [ ! $(($x % 2)) = 0 ]
then
a=$(($a + $x))
fi
done

echo $a

Information is like a mist, you have to breath it in

(De-Phazz - Information)

sr409

Junior Schreiberling

Posts: 156

Date of registration: Jan 3rd 2003

9

Sunday, February 23rd 2003, 6:30pm

Kann hier noch einer mal die Antwort zu abgeben...bin mir beim 2. nicht 100% sicher

• Die umask ist auf 026 gesetzt. Sie erzeugen eine neue Datei dl und ein neues Verzeichnis vl. Wie sind die Schutzbits von dl und vl gesetzt?
Jetzt setzen Sie die umask auf 067 und kopieren Sie die Datei dl in die Datei d2. Wie sind die Schutzbits von d2 gesetzt?

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

10

Sunday, February 23rd 2003, 6:38pm

Quoted

Original von sr409
Die umask ist auf 026 gesetzt. Sie erzeugen eine neue Datei dl und ein neues Verzeichnis vl. Wie sind die Schutzbits von dl und vl gesetzt?
d1: rw-r-----
v1: rwxr-x--x

Quoted

Jetzt setzen Sie die umask auf 067 und kopieren Sie die Datei dl in die Datei d2. Wie sind die Schutzbits von d2 gesetzt?
d2: rw-------


Hättest Du auch einfach ausprobieren können. :)
The purpose of computing is insight, not numbers.
Richard Hamming, 1962