PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scriptfrage, Ordner erstellen mit Variabeln


DaHard
2010-03-26, 13:16:41
Moin

Linux ist für mich totales Neuland, Schule gerade darauf :freak:

Ich möchte gerne folgendes bewerkstelligen per vim(scripteditor).

Schreibe ein Script, welches in /tmp eine Verzeichnishierarchie nach folgendem Muster
erstellt:

dirA
..|
..-> foo1
..|....|
..|....-> bar99
..|
..-> foo2
.......|
.......-> bar 98

dirB
dirC
dirD
dirE

(for, mkdir)

Danke schon mal im Voraus für die Hilfe.

Gast
2010-03-26, 13:30:07
Und wo ist das Problem? Was hast du denn bisher versucht? Woran hakt es?

Du erwartest hoffentlich nicht, dass dir jemand die komplette Arbeit abnimmt, denn das wäre komplett unsinnig, da du sonst danach genau so blödschlau bist wie zuvor.

Simon
2010-03-26, 13:33:03
Und wo ist jetzt dein Problem?

1) Bedienung von vim? Dann nimm lieber nano, kwrite, gedit, etc.
2) In welcher Scriptsprache überhaupt, ich nehm mal an, shell-script?

DaHard
2010-03-26, 13:37:18
Und wo ist jetzt dein Problem?

1) Bedienung von vim? Dann nimm lieber nano, kwrite, gedit, etc.
2) In welcher Scriptsprache überhaupt, ich nehm mal an, shell-script?

Ja shellscript

ich fange folgende Zeile an mit shebang
#!/bin/bash

Nur leider fehlt mir weitere Erfahrung wie ich das bewerkstelligen soll.
Hab bis vor 2 Wochen nicht mit Linux gearbeitet.

Ich weiss das ich mit mkdir usw Ordner erstellen kann, und mit rm -(schalter) wieder zu löschen, touch für datei erstellen usw.
Ich übe halt noch :-)

Simon
2010-03-26, 14:19:49
Na dann: http://www.freeos.com/guides/lsst/

Gast
2010-03-26, 19:04:53
Advanced Bash-Scripting Guide: http://tldp.org/LDP/abs/html/

Gast
2010-03-26, 19:12:03
Nur leider fehlt mir weitere Erfahrung wie ich das bewerkstelligen soll.
Hab bis vor 2 Wochen nicht mit Linux gearbeitet.


Das hat doch nichts mit Linux zu tun. In nahezu jeder Programmiersprache gibt es Schleifen für so etwas. Also entweder 'for' oder 'while' verwenden. Dokumentation gibt es wirklich massenweise. Für den Einstieg brauchbar:
http://linuxseiten.kg-it.de/index.php?index=bash_lektionen

Laz-Y
2010-03-26, 19:12:33
Btw. hat so eine Aufgabenstellung überhaupt nichts mit Linux zu tun. Genau das Gleiche kannst Du auch unter Windows brauchen/machen. Da nimmst Du dann nur eine andere Sprache, was aber keinen großen Unterschied bedeutet.

DaHard
2010-03-26, 23:17:52
Danke für die Links werd mich mal rein lesen.

DaHard
2010-03-30, 08:52:20
So hab mal ein Script geschrieben und es scheint auch zu funzen.
Hier mal mein Script für ne kleine Systeminfo


#!/bin/bash

#Variablen
UNAME='/bin/uname'
USER='/usr/bin/id -un'
SPEICHER='/proc/meminfo'
CPU='/proc/cpuinfo'
HDD='/bin/df -h'

#Anfang
echo "====================================="
echo "= Systemuebersicht ="
echo "====================================="
#Prozessor
#ermittle Details ueber den Prozessor
echo ""
echo "CPU INFORMATIONEN"
sed -n -e 's#model name#Typ#p'\
-e 's#cpu MHz#Aktuelle Taktrate#p' $CPU | tr -s ' '

#Angemeldete USER
echo ""
echo "ANGEMELDETE USER"
$USER


#Speicher
#ermittle den eingebauten und freien Speicher
echo ""
echo "SPEICHER"
echo ""
sed -n -e 's#MemTotal#Total RAM#p'\
-e 's#MemFree#Free RAM#p' $SPEICHER

#Festplatte
echo ""
echo "FESTPLATTENBELEGUNG"
$HDD

#Betriebsystem
TYP=`$UNAME -m`
NNAME=`$UNAME -n`
REL=`$UNAME -r`
OSNAME=`$UNAME -s`
CPUTYP=`$UNAME -p`
OSVER=`$UNAME -v`
echo ""
echo "BETRIEBSSYSTEM:"
echo ""
echo "Maschinentyp: $TYP"
echo "Netzwerkname: $NNAME"
echo "Release-Nummer: $REL"
echo "Betriebssystemname: $OSNAME"
echo "Typ des Prozessors: $CPUTYP"
echo "Version des Betriebssystems: $OSVER"

#Interrupts
echo ""
echo "Interrupts"
echo ""
cat /proc/interrupts

Gast
2010-03-30, 10:34:21
Sehr schön (das mein ich ernst)
Ein paar Vorschläge/Anreize wie du weitermachen kannst: Ein --help switch der dem unbedarften Benutzer erklärt was dein Script überhaupt tut und wie er es verwendet. Ein exit 0 am Schluss gehört zum guten Stil. Was machst du wenn die Anwendungen die du verwendest (sed, uname, df usw) nicht vorhanden sind (gut, in deinem Fall eher unwahrscheinlich ;) ) -> Prüfe ob die Aufrufe erfolgreich sind und triff Maßnahmen falls nicht.

lg

DaHard
2010-03-30, 22:46:54
Werd da noch weiter verfeinern, werd mich morgen mit einem Script beschäftigen was das Entpacken verschiedener Archive übernimmt, quasi auf einem klick. Mal gucken ob es mir gelingt.

Die Links von Oben, helfen ganz gut, das ganze ein wenig zu verstehen.