Aufgaben Bash while: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
= Aufgabe 1 =
 
= Aufgabe 1 =
* Bauen Sie das Perl-Skript '''adduser''', welches den Anwender nach den optionalen Parametern von '''useradd''' befragt, in Bash nach.
+
 
* Folgendes kann man zum Testen benutzen:
+
* Programmieren Sie einen Counter der hochzählt.
** '''echo -n "Benuternamen eingeben: " ; read username'''
+
 
** '''echo $username'''
+
= Aufgabe 2 =
=Aufgabe 2=
+
 
*Programmieren Sie einen Counter der hochzählt.
+
* Programmieren Sie einen Counter der hochzählt und nur ungerade Zahlen ausgibt.
=Aufgabe 3=
+
 
*Programmieren Sie einen Counter der hochzählt und nur ungerade Zahlen ausgibt.
+
= Aufgabe 3 =
=Aufgabe 4=
+
 
*Erstellen Sie ein Programm welches die Datei /etc/passwd einliest und die Felder in umgekehrter Reihenfolge ausgibt.
+
* Erstellen Sie ein Programm welches die Datei /etc/passwd einliest und die Felder in umgekehrter Reihenfolge ausgibt.
 +
 
 +
<syntaxhighlight lang=bash>
 +
#!/bin/bash
 +
 
 +
while read l
 +
do
 +
 
 +
echo $l | awk -F ":" '{print $7":"$6":"$5":"$4":"$3":"$2":"$1}'
 +
 
 +
done < /etc/passwd
 +
</syntaxhighlight>
 +
 
 +
= Aufgabe 4 =
 +
 
 +
* Erstellen Sie dasselbe Programm unter Verwendung von '''awk'''
 +
* '''awk''' soll dabei nie explizit die Anzahl der Felder gesagt bekommen, da es in der awk-Variable ''NF'' (Number of Fields) vorhanden ist
 +
 
 +
<syntaxhighlight lang=bash>
 +
 
 +
#!/bin/bash
 +
 
 +
while read l
 +
do
 +
 
 +
echo $l | awk -F ":" '{
 +
i = NF
 +
while (i > 0) {
 +
printf $i":"
 +
i--
 +
}
 +
printf "\n"
 +
}'
 +
 
 +
done < /etc/passwd
 +
</syntaxhighlight>

Version vom 2. Juni 2023, 07:21 Uhr

Aufgabe 1

  • Programmieren Sie einen Counter der hochzählt.

Aufgabe 2

  • Programmieren Sie einen Counter der hochzählt und nur ungerade Zahlen ausgibt.

Aufgabe 3

  • Erstellen Sie ein Programm welches die Datei /etc/passwd einliest und die Felder in umgekehrter Reihenfolge ausgibt.
#!/bin/bash

while read l
do

echo $l | awk -F ":" '{print $7":"$6":"$5":"$4":"$3":"$2":"$1}'

done < /etc/passwd

Aufgabe 4

  • Erstellen Sie dasselbe Programm unter Verwendung von awk
  • awk soll dabei nie explizit die Anzahl der Felder gesagt bekommen, da es in der awk-Variable NF (Number of Fields) vorhanden ist
#!/bin/bash

while read l
do

echo $l | awk -F ":" '{
	i = NF
		while (i > 0) {
			printf $i":"
			i--
	}
	printf "\n"
}'

done < /etc/passwd