helpme20
Anmeldungsdatum: 28. April 2010
Beiträge: Zähle...
|
HELP: bash-Schellscript, ausgabe aller Dateien im Directory Ein Shell-Skript dient zur Automatisierung von Vorgängen, die aus vielen Kommandos bestehen. Unter Linux ist es verbreitet, den Kommandozeileninterpreter (Shell) "bash" zu verwenden. Die bash ist gewöhnlich das Programm, das unsere eingetippten Kommandos ausführt. Wie schreibe ich ein bash-Shellscript, welches im aktuellen Directory für alle Dateien ausgibt, ob die Datei ein Verzeichnis ist oder nicht und welche Zugriffsrechte darauf bestehen. Hinweise: echo zur Ausgabe von Texten, man test, if [ Bedingung ], man bash (Suchen nach dem if-Befehl mit /elif). Ich möchte ein Shellskript mit den Namen exercise.sh ablegen. Die Ausgabe soll entsprechend dem folgenden Beispiel aussehen: exercise.sh ist eine normale Datei
Zugriffsrechte: rw-r--r--
Documents ist ein Verzeichnis
Zugriffsrechte: rwxr-xr-x Hat jemand eine Ahnung was ich in dem Shell-Skript schreiben muss??? Helft mir bitte... Vielen Dank!
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Hi helpme20, willkommen auf dem Forum ! Das was Du da schreibst ist noch etwas diffus ... Was willst Du denn mit der Liste machen ? - soll sie weiter verarbeitet werden ? Wenn Du nur Hinweise haben möchtest wo Du Dich einlesen kannst, dann hilft Dir sicherlich dies erstmal weiter: http://ubuntuusers.de/user/track/#Scripten Ansonsten müsstest Du etwas konkreter werden. LG, track p.s.: Wenn Du hier Code oder Text posten willst, der nicht "zurechtformatiert" werden soll, brauchst Du dafür einen "Codeblock", Knöpfchen Ungültiges MakroDieses Makro ist nicht verfügbar oben.
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Ich möchte ein Shell-Skript (.sh) das mir folgende Informationen ausgibt, wenn es ausgeführt wird. Die Ausgabe soll entsprechend dem folgenden Beispiel aussehen:
exercise.sh ist eine normale Datei /
Zugriffsrechte: rw-r--r-- /
Documents ist ein Verzeichnis /
Zugriffsrechte: rwxr-xr-x /
Das System soll es selbst über das Shell-Skrip erkennen, dann ausführen und das oben ausgeben... Kannst du mir helfen? Kennst du evtl. die Befehle hierfür?
Bearbeitet von redknight: Fullquote entfernt, weil unnötig. Bitte verzichte zukünftig auf Komplettformatierung deines Textes und benutz Codeblöcke
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Ich mag mich nicht anschreien lassen. Auch nicht im richtigen Leben. Wenn Du nicht genauer sagen magst was Du möchtest kann ich Dir nicht weiter helfen. (und will es auch nicht) track
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Wieso anschreien? Wie kommst du jetzt auf sowas...? Das ist nicht meine Art, und falls du dich von mir irgendwie angegriffen fühlst, sorry, aber ich versteh echt nicht wie du jetzt auf sowas kommst..., egal... Ich hätte sehr gerne gewusst, was ich in einem Shell-Script schreiben muss, um folgende Ausgabe zu erhalten: Bsp.:
exercise.sh ist eine normale Datei /
Zugriffsrechte: rw-r--r-- /
Documents ist ein Verzeichnis /
Zugriffsrechte: rwxr-xr-x /
Das Shell-Skript soll ausgeben, um was für eine Datei es sich handelt, normale Datei oder Verzeichnis, wie oben beschrieben, zudem sollen auch die Zugriffsrechte ausgegeben werden.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Möchtest Du eine Liste aller Dateien bekommen, ähnlich wie bei einem ls -l im Terminal ? (Nur dann anders formatiert ?) Und wird die Liste noch irgendwie weiter verarbeitet, oder soll sie nur angezeigt werden ? track
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2510
|
helpme20 schrieb: Wieso anschreien? Wie kommst du jetzt auf sowas...?
Es geht darum, dass du in fetten Buchstaben schreibst/schriebst, was immer etwas aggressiv wirkt. 😉 Da sich die Problemstellung wie eine Übungsaufgabe liest (weswegen du wahrscheinlich nicht einfach ls benutzen kannst, oder?), mag ich dir jetzt nicht den Spaß verderben und sie für dich lösen. ☺ Trotzdem ein paar Anreize: So kannst du über alle Dateien im aktuellen Verzeichnis iterieren:
| for i in *
do
echo Name der Datei: "$i"
done
|
So könntest du testen, ob eine Datei ausführbar oder lesbar ist:
| if [ -x "/pfad/zur/Datei" ]
then
echo Datei existiert und ist ausführbar.
fi
if [ -r "/pfad/zur/Datei" ]
then
echo Datei existiert und ist lesbar.
fi
|
Grundlegende Infos zum Skripten hat track ganz oben schon verlinkt. Wenn du also überhaupt keine Ahnung hast, was los ist, dann fang am besten damit an, dich dort mal einzulesen. Ansonsten hast du selbst schon gepostet, wo noch nützliche Informationen stehen (man test , man bash , ...).
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
... und eine ziemlich saubere Methode um die Rechtemaske abzufragen ist der Befehl stat:
stat -c %A "$i" (um in dem Beispiel von vain zu bleiben) In der Rechtemaske bezeichnet der erste Buchstabe immer die "Dateiart", wie hier beschrieben: http://wiki.ubuntuusers.de/Rechte#Rechte-in-symbolischer-Darstellung wobei vor allem "-" für gewöhnliche Dateien, "d" für Verzeichnisse und "l" (klein L) für Links vorkommen. Und Du könntest ja z.B. den betreffenden Buchstaben mit Hilfe von sed (→ http://www.tty1.net/sed-tutorium/sed-tutorium.html ) in die passende Prosa umsetzen lassen ... Aber damit haben wir Dir jetzt schon alle Bausteine auf einem Tablett angereicht. 😉 track
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Ich habe es fett gemacht, damit man meinen Text nicht übersehen kann, ich bin neu hier. Es schafft eine schnelle Übersicht!
Bearbeitet von redknight: Erneut Fullquote und Fettdruck entfernt.
|
redknight
Moderator & Supporter
Anmeldungsdatum: 30. Oktober 2008
Beiträge: 21846
Wohnort: Lorchhausen im schönen Rheingau
|
Ich fordere dich nun erneut auf, auf unnötige Formatierungen und Fullquotes zu verzichten. Das gebieten die Netiquette allgemein und die Forenregeln im speziellen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17620
Wohnort: Berlin
|
Sieht sehr nach einer Hausaufgabe aus, mit klarer Eingrenzung was erlaubt/erwartet/empfohlen wird:
Also nicht "eine richtige Scriptsprache verwenden" ☺ - huhu. (Insiderwitz.)
Wie schreibe ich ein bash-Shellscript, welches im aktuellen Directory für alle Dateien ausgibt, ob die Datei ein Verzeichnis ist oder nicht und welche Zugriffsrechte darauf bestehen.
Tja - das sind ja 3 Aufgaben in einer:
alle Dateien ausgeben (also nicht deren Inhalt, sondern den Namen usw.) ist eine Datei ein Verzeichnis? welche Zugriffsrechte gibt es.
Wo hast Du denn Schwierigkeiten, und was kannst Du alleine?
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Ich tu es mir in der Shell-Programmierung schwer, es ist NEULAND.
Wäre toll, wenn du evtl. eine passende Lösung für diese Aufgabe hast. ☺ user unknown schrieb: Sieht sehr nach einer Hausaufgabe aus, mit klarer Eingrenzung was erlaubt/erwartet/empfohlen wird:
Also nicht "eine richtige Scriptsprache verwenden" ☺ - huhu. (Insiderwitz.)
Wie schreibe ich ein bash-Shellscript, welches im aktuellen Directory für alle Dateien ausgibt, ob die Datei ein Verzeichnis ist oder nicht und welche Zugriffsrechte darauf bestehen.
Tja - das sind ja 3 Aufgaben in einer:
alle Dateien ausgeben (also nicht deren Inhalt, sondern den Namen usw.) ist eine Datei ein Verzeichnis? welche Zugriffsrechte gibt es.
Wo hast Du denn Schwierigkeiten, und was kannst Du alleine?
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Hey, danke, kannst du mir sagen, wie ich das jetzt einbinde? Muss ich eine Datei erstellen im Verzeichnis, damit dann erkannt wird ob es eine Datei ist oder nicht? wie soll ich diese bennen und wie ist die endung (.c oder .sh)... ist der code zu der aufgabe überhaupt korrekt? ich habe echt schwierigkeite mit dieser aufgabe... ☹ Bearbeitet von jug: Immer wieder TOFU
|
helpme20
(Themenstarter)
Anmeldungsdatum: 28. April 2010
Beiträge: 8
|
Hallo ich habe leider immer noch das Problem, dass ich diese Aufgabe nicht alleine lösen kann, Shell-Programmierung ist für mich NEULAND. Ich bin ein absoluter NEULING in der Programmierung... Kannst du mir diese Aufgabe nicht lösen, es ist wirklich nur diese Aufgabe, es folgt danach evtl. noch ein kleiner Aufbau, für dich scheint es sich leicht anzuhören, für mich ist es echt blöd. ☺ Hier habe ich es noch einmal in dem Forum etwas formeller geschrieben:
http://forum.ubuntuusers.de/topic/aufgabe-loesen/ Please help me! ☺ Bearbeitet von jug: Schon wieder TOFU
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Du schmierst uns hier Mus um den Bart, aber hast selber noch nicht eine Zeile Code selber geschrieben. Was soll das ? Wir helfen ja gerne, aber ein Dienstleistungskombinat zur Erledigung fremder Aufgaben sind wir ja nun nicht. Ganz oben hatte ich Dir einen Link gegeben, wo Du Dich einlesen kannst. Hier gebe ich Dir noch einmal ganz konkret meine Links: * Einführung auf deutsch: von der TFH Berlin, den Linux-Services oder im Wiki für Anfänger
Ich erwarte, dass Du anhand einer dieser Anleitungen selber anfängst Dein Skript zu schreiben. Wenn Du deine ersten 5 Zeilen eigenen Code fertig hast, sehen wir mal weiter. Genügend ganz konkrete Tips haben wir Dir ja oben schon gegeben. Nun bist Du an der Reihe. LG, track
|