"Batch Datei" bzw ./sh Script

cat1510

Well-Known Member
Hi

Meine Frage heute.... ;)

Wie mache ich eine Stapelverarbeitungsdatei?

mit chmod -X klappt das, soviel hab ich auch schon gelesen.
Wenn ich die Datei aber ausführe bzw das script.
Sagt er zu mir Command not found und Permission denied.

Wo ist das Problem?

Direkt Frage 2 , wie kann BSD denn WinDateien nit Endung sortieren? zum Beispiel *.mp3 in ein anderes Verzeichnis kopieren?

Oder hat jemand einen Link? Dann such ich mir das selbst zusammen.....

MFG

CAT
 
Siehe http://unix.about.com/library/weekly/aa050701a.htm

Erzeuge mit deinem Lieblingseditor eine Datei;
schreibe in die erste Zeile

#!/usr/local/bin/bash

wenn du willst, dass die _Bash_ diese Datei ausführen soll;

nachher schreibst du die Abfolge deiner Befehle, wie zB:

cp *.mp3 /pfad/nach/verzeichnis

Dann sieht deine Datei so aus:

#!/usr/local/bin/bash
cp *.mp3 /pfad/nach/verzeichnis

speichere die Datei.



auf der Kommandozeile musst du diese Datei als ausführbar markieren:

$ chmod 0500 deineDatei

zum Beispiel, macht deineDatei les- und ausführbar für dich,

um sie auszuführen, entweder:

$ sh /pfad/zu/deiner/Datei/deineDatei

oder, wenn du im gleichen Verzeichnis, wie deine Datei
bist, einfach

$ ./deineDatei

so weiss deine Shell, wo deineDatei ist.


lies dazu die Man-Pages:

$ man bash (in deinem Fall Pattern Matching)
$ man chmod

HTH,
lars.
 
Zuletzt bearbeitet:
Original geschrieben von cat1510
Hi

Meine Frage heute.... ;)

Wie mache ich eine Stapelverarbeitungsdatei?


Deine Frage ist bereits von lars sehr schön beantwortet worden und ich kann dir zusätzlich diese Website empfehlen: http://rowa.giso.de/german/shell-scripte.html

Dort findest du einen Shell-Scripte-Kurs.

Ich fand ihn hilfreich für mich. Vielleicht gefällt er dir auch. ;)

Der Kurs wird zwar auf einem Linux-System gemacht, doch die Shell-Programmierung ist dieselbe für alle POSIX-Systeme. :)

Grüße

CW
 
Zuletzt bearbeitet:
Danke Jungs!

Da hab ich schon direkt meinen Fehler gefunden:

Note: Don't name your shell script "test" because it will interfere with a built-in shell command named test.

*g* man kann halt nicht alles test nennen. :)

Benutzt Ihr denn zum Beispiel Scripts für Standard Programm Installation oder macht sowas keinen Sinn?
 
Original geschrieben von cat1510

Benutzt Ihr denn zum Beispiel Scripts für Standard Programm Installation oder macht sowas keinen Sinn?

Hmmm ... also wenn du damit die Packages gemeint hast, dann braucht man ja keine Shell-Scripte die sowas machen, denn Packages sind selbst-installierend.

Oder habe ich dich nicht richtig verstanden?

CW
 
Meistens installiere ich aus den Ports und lass das System das zusammen basteln, da die computer sehr unterschiedlich sind.

zum Beispiel hat man auf auf jeden Computer doch zum Beispiel:
vim, screen, sudo, wget etc. Ich wollte die mittels eines scripts nacheinander installieren lassen. Die ports auschecken und solchen Kram halt. Wenn ich Windoof installiere macht er das auch von ganz allein. Nun wollte ich mit den gleichen Kompfort unter BSD auch gönnen. :)

CAT
 
Original geschrieben von cat1510


zum Beispiel hat man auf auf jeden Computer doch zum Beispiel:
vim, screen, sudo, wget etc. Ich wollte die mittels eines scripts nacheinander installieren lassen. Die ports auschecken und solchen Kram halt. Wenn ich Windoof installiere macht er das auch von ganz allein. Nun wollte ich mit den gleichen Kompfort unter BSD auch gönnen. :)

CAT

Hmmm ... also nehmen wir an, dass du mehreren Computern dieselbe Arbeitsumgebung verpassen willst (also vim, screen, sudo, wget, einen Window-manager etc.), dann wäre es durchaus denkbar, dass du einen Shell-Script bastelst, der für dich schaut, ob auf dem System Ports zu finden sind und wenn nicht, dann diese holt und in die betreffenden Port-Verzeichnisse geht und make && make install ausführt.

Das wäre durchaus denkbar, doch bei etwas haarigeren sachen wie z.B. OpenOffice, kann es durchaus zu Problemen kommen, die man dann erst einmal im Script umgehen bzw. lösen müsste.

Denkbar ist es schon, jedoch, meiner Meinung nach, erst wenn es um viele Maschinen geht.

Für eine einzige Maschine reicht doch der normale /usr, /etc, /home und /var Backup.

Und dann diesen auf die neue Maschine übertragen.

Gruß

CW
 
Original geschrieben von cat1510
zum Beispiel hat man auf auf jeden Computer doch zum Beispiel:
vim, screen, sudo, wget etc. Ich wollte die mittels eines scripts nacheinander installieren lassen. Die ports auschecken und solchen Kram halt. Wenn ich Windoof installiere macht er das auch von ganz allein. Nun wollte ich mit den gleichen Kompfort unter BSD auch gönnen. :)

portinstall $programm1 $programm2 ...
pkg_add -r $programm1 && pkg_add -r $programm2

Sollte so gehen...
 
Zurück
Oben