Parameter einzeln abfragen

Post Reply
Message
Author
Fatzke
Posts: 3
Joined: 25. Jun 2006 20:28

Parameter einzeln abfragen

#1 Post by Fatzke »

Hallo zusammen,

gibt es eine Möglichkeit, die EingabeParameter einzeln einzulesen? Also nicht mit

Code: Select all

for i 
do ... 
done
sondern irgend ne andere Möglichkeit???

Ich will ein Skript schreiben in dem die ersten Parameter zu einem String zusammengefügt werden und der letzte Parameter ein Dateiname ist.


vielleicht kann mir ja jemand nen Tip geben

viele Grüße
Fatzke

User avatar
killerhippy
Posts: 529
Joined: 19. May 2000 19:36
Contact:

#2 Post by killerhippy »

Tippe mal auf Bash:

siehe man bash, shift [n]
Es gibt keine dumme Fragen!

Killerhippy

Fatzke
Posts: 3
Joined: 25. Jun 2006 20:28

#3 Post by Fatzke »

alles klar okay!!! vielen Dank


nun hätt ich noch zwei Fragen:

und zwar wie kann ich denn einen ganzen String übersetzen??

Code: Select all

echo | tr "ist" "war" < klausur  
so würde er mir nur die einzelen Zeichen übersetzten also i mit w s mit t usw.


und meine zweite Frage ist:
Gibt es eine Komandofolge, mit der ich aus einer Datei, Dateiname auslese und deren Inhalt dann ausgebe???
Ich würde das nur über ein Skript hinbekommen aber nicht über eine einzige Kommandofolge?!?!?!!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

1. mit sed, Befehl "s". z.B. sed "s/ist/war/g;" <Eingabedatei >Ausgabedatei

2. cat $(<Namensdatei)

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Fatzke
Posts: 3
Joined: 25. Jun 2006 20:28

#5 Post by Fatzke »

danke nochmals:

ich hätte nun noch eine Frage:

wenn man Variablen mit Text also Strings vergleicht das geht doch folgendermaßen oder??

Code: Select all

 if &#91; var1 = var2 &#93; then ... fi
er gibt mir da irgendwie ein Fehler aus:

hier noch der komplette Quellcode:
--> stellt ein skript dar, das die ANzahl der Benutzer ohne DUplikate zählt

Code: Select all


who > tmp
line_pre=""
counter=0

while read line rest
do
echo $line >> test
done < tmp

more test | sort > test


while read line
do
if test $line_pre != $line
then
&#40;&#40; counter++ &#41;&#41;
line_pre=$line
fi
done < test
echo $counter

rm test
rm tmp

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#6 Post by Janka »

test gibt einen Fehler, wenn line_pre oder line leer sind, weil da dann nur noch Whitespace steht. Mach mal Doppelhäkchen um $line_pre und $line.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply