Hallo gibt es bei Linux so eine art startdatei womit man einen befehl direkt ausführen kann, also das was bei windows die *.bat Dateien sind.
start dateien?
Anmeldungsdatum: Beiträge: 145 Wohnort: Köln |
|
Anmeldungsdatum: Beiträge: 10220 |
Hi - jupp gibt es, und das eine ganze Menge im Prinzip ist Linux eine riesengroße Sammlung von .bat-Dateien. Aber mal ernsthaft >> sieh Dir dieses http://www.kg-it.de/linuxseiten/index.php?index=themes_bash an, und Du verstehst was ich meine! Gruß syscon-hh |
Anmeldungsdatum: Beiträge: 3620 |
syscon-hh hat geschrieben:
Ja genau, der Kernel ist in bash geschrieben 🙄 |
Ehemalige
![]() Anmeldungsdatum: Beiträge: 6018 Wohnort: Nürnberg |
Hello World hat geschrieben:
Nix für ungut, aber was soll das? Du weißt doch genau, wie syscon-hh das gemeint hat. Anstatt in anzuschnauzen, hättest _Du_ ihn informieren können. Das wäre zumindest konstruktiv gewesen. Ausserdem gibt es auch andere Auffassungen als "Linux ist nur ein Kernel". Hmm, jetzt mach ich glatt mal 'ne Umfrage. |
Anmeldungsdatum: Beiträge: 10220 |
Hi - nichts für ungut aber ich kenne den Unterschied von .bat bzw. bash oder auch sh und was sich sonst noch im UNIX oder LINUX so tummelt!!!! Ansonsten hätte ich einem WINDOW-janer ja garnicht bei der Stange halten können, wenn ich ihn all zu sehr gleich mit der ganzen Wahrheit konfrontiere. Gruß an alle syscon-hh |
Ehemalige
![]() Anmeldungsdatum: Beiträge: 6018 Wohnort: Nürnberg |
@syscon-hh: 'hello world' ging es um etwas anderes: Mit Linux wird streng genommen _nur_ der sogenannte Kernel bezeichnet. Und in diesem kommen nunmal überhaupt gar keine Shellscripte vor. Und das steht im Widerspruch zu deiner Aussage: "im Prinzip ist Linux eine riesengroße Sammlung von .bat-Dateien"... siehe auch hier: GNU/Linux-Namensstreit @lord_fritte: Schau mal hier: Rc_local |
(Themenstarter)
Anmeldungsdatum: Beiträge: 145 Wohnort: Köln |
Aber wie kann ich ein script schreiben was z.b. Terminal Befehle ausführt und das dann auch starten? |
Anmeldungsdatum: Beiträge: 2159 |
lord_fritte hat geschrieben:
Du kannst alle Befehle die du in der Shell ausführst, einfach in einer TExtdatei schreiben. Die Ausführbarkeit wird unter Unix/Linux über ein Dateisystem Flag geregelt. Um diese Skriptdatei also auszuführen musst du das "x" Flag setzen. Das auch für "Executable" steht. Wenn du also eine Datei Namens "foo" hast musst du "chmod u+x foo" eintippen. Damit wird für den "user" (besitzer, Owner) die Datei asuführbar gemacht. Wenn die Datei nicht in einem verzeichnis aus PATH (echo $PATH) steht, dann wird durch einfache eingabe von "foo" das Skript nicht ausgeführt. Du musst also ein absoluten oder Relativen Pfad zum Ausführen eingeben. Absolut: /home/user/foo" Die Relative Angabe geht nur wenn du dich im aktuellen Verzeichnis befindest. Die Dateiendung ist absolut unwichtig. Es kommt nur auf das "x" Flag an. Manchmal, wird aber auch ".sh" benutzt für ein Shellskript. Ansonsten wenn das "x" Flag nicht gesetzt ist, kannst du auch direkt angeben, welcher Interpreter diese Datei ausführen soll. Das geht dann z.B: mit "bash foo". dann führt die bash das Skript "foo" aus. Üblicherweise setzt man noch am Anfang des Skriptes die sogenannte Shebang Zeile. Den wenn du dein Skript mit "./foo" ausführst wird die aktuelle Shell benutzt. Meistens ist das Bash, aber das muss nicht sein, es gibt noch unzählige andere Shells. Damit das System halt weiß mit welcher Shell dein Skript ausgeführt wird kannst du als erste Zeile in deinem Skript folgendes Schreiben: #!/bin/bash Damit wird dein Skript immer mit der bash ausgeführt, auch wenn der Benutzer csh, oder eine andere Shell benutzt. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 145 Wohnort: Köln |
Warum geht das nicht? #!/usr/bin/perl mkdir ivtv mkdir ivtv/test Das Terminal sagt: Missing comma after first argument to mkdir function at ./IvtvInstall line 4, at EOF Execution of ./IvtvInstall aborted due to compilation errors. |
Ehemalige
![]() Anmeldungsdatum: Beiträge: 4689 Wohnort: Berlin |
Das geht nicht weil es kein gültiger Perl-Quelltext ist. Da musst Du mindestens Anführungszeichen um die Pfadnamen schreiben und ein Semikolon am Ende des Befehls. #!/usr/bin/perl mkdir 'ivtv'; mkdir 'ivtv/test'; |
Ehemalige
![]() Anmeldungsdatum: Beiträge: 6018 Wohnort: Nürnberg |
lord_fritte hat geschrieben:
Hab ich mir gleich gedacht, dass Du an dieser Stelle aus dem Tritt kommst: Sid Burn hat für diese Art von Postings eine, naja sagen wir etwas nachteilige Signatur. Keine Ahnung warum er da so unlesbares Zeug drin stehen hat... Also nochmal: Sids Beitrag ist schon vor dem 'perl-zeug' zuende... |
(Themenstarter)
Anmeldungsdatum: Beiträge: 145 Wohnort: Köln |
oh man schon verwirrend das ganze |
![]() Anmeldungsdatum: Beiträge: 1399 |
lord_fritte hat geschrieben:
Weil du da oben ein "/usr/bin/perl" stehen hast. #!/bin/bash mkdir ivtv mkdir ivtv/test |
Anmeldungsdatum: Beiträge: 2159 |
Ach warum nachteilig. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 145 Wohnort: Köln |
Ja habe ich jetzt ☺ |