Hallo zusammen !
Als Linux-Anfänger sitze ich gerade an 2 csh-shell-skripten. Leider hat mich mein Latein verlassen, so dass ich nun auf eure Hilfe angewiesen bin.
1.) Im ersten Skript sollen alle Freitag der 13. in einem angegebenen Jahresintervall gesucht werden. Leider funktioniert die Hauptschleife nicht, so dass immer nur ein Jahr durchsucht wird. Hier das Skript:
#!/bin/csh -f
# Aufgabe 1
# Ausgabe aller 13. Freitage in einem festgelegten Interval
# Aufruf: find13.csh Jahr1 Jahr2
#
set jahr_1 = $argv[1]
set jahr_2 = $argv[2]
set monat = 1
if ( $#argv != 2 || $1 >= $2 ) then
echo "Error! Usage: $0 1.Jahr 2.Jahr"
exit 1
else
while ( $jahr_1 <= $jahr_2 )
while ( $monat <= 12 )
set a = `cal $monat $jahr_1 | awk '$6 ~/13/ {print $6}'`
if ( $a == "13") then
echo "13.${monat}.${jahr_1}"
endif
@ monat++
end
#
@ jahr_1++
end
endif
exit 0
2.) Im 2. Skript soll eine kleine Datenbank erstellt werden. Vorname, Name, Telefonnummer werden abgefragt und in die Datei tele.txt geschrieben werden. Die awk-Ausgabe am Bildschirm funktiniert, doch wird nichts in die Datei geschrieben. Auch beendet sich das Skript nicht mehr:
#!/bin/csh -f
# Aufgabe 2
# Speicherung von Name, Vorname, Telefonnummer in Datei tele.txt
# Aufruf: tele.csh
#
clear
echo "Name: "
set input1 = "$<"
set name = ( $input1 )
#
echo "Vorname: "
set input2 = "$<"
set vorname = ( $input2 )
#
echo "Telefonnummer: "
set input3 = "$<"
set telefonnummer = ( $input3 )
#
if ( $telefonnummer == "" ) then
set telefonnummer = "-"
endif
#
set tag = `date +%d`
set monat = `date +%m`
set jahr = `date +%y`
set datum = "${tag}.${monat}.${jahr}"
#
awk '{printf "t%-8s\t%-s\t%-8s\t%-17s\n", "'$name'", "'$vorname'", "'$telefonnummer'", "'$datum'" >> "tele.txt"}'
exit 0
Die Datei tele.txt sieht so aus:
Name Vorname Telephonnummer Datum der Eintragung
-------------------------------------------------------------
Mustermann Alfred 089/345345 20.04.03
Hotzenplotz Reiner 0911/778117 19.04.03
Hirsch Harry - 19.04.03
Für eure Hilfe wäre ich sehr dankbar !
Vielen Dank!