Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Shell und Perl Script mit Parameter starten

Frage Entwicklung Batch & Shell

Mitglied: Maveric

Maveric (Level 1) - Jetzt verbinden

17.01.2013 um 13:10 Uhr, 4987 Aufrufe, 5 Kommentare

Moin,

ich habe ein Shell und ein Perl Skript. Die Grundlegende Idee ist,
das Shell Skript bekommt beim Aufruf den Namen einer Logfile übergeben,
bearbeitet die Logfile, speichert das Ergebnis in einer neuen Datei und
ruft dann das Perl Skript auf und übergibt als Parameter die neue Datei
bzw dessen Namen.

Das Shell Skript wird durch einen Cron job jeden Abend/Morgen um
24 Uhr oder kurz davor mit der Logfile des Tages Aufgerufen. Das ganze
ist für Statistische Zwecke.

Ich habe das Perl und das Shell Skript Programmiert. Bis jetzt ist aber
im Shell und Perl Skript jeweils die benötigte Datei hart gecoded, was
wenig sinn macht.

Meine Fragen:
Wie übergebe ich meinem Shell Script einen Parameter?
Wie Speicher ich den Parameter in eine Variable?

Wie rufe ich aus dem Shell Skript mein Perl Skript mit Übergabeparamter auf?
Wie speicher ich den Übergabeparameter?

Viele Grüße
Maveric
Mitglied: askando
17.01.2013, aktualisiert um 13:21 Uhr
www.gidf.de erster Treffer ;)

http://www.perl-community.de/bat/poard/thread/11854

Hoffe das hilft Dir! Lg
Bitte warten ..
Mitglied: Maveric
17.01.2013 um 13:19 Uhr
Zitat von askando:
www.gidf.de erster Treffer ;)

http://www.perl-community.de/bat/poard/thread/11854

Hoffe das hilft Dir! Lg

Ich hatte die ganze Zeit nach Shell + Übergabeparameter gesucht weil ich das erst im zweiten Schritte machen wollte, aber ja das ist das was ich gesucht habe. =) Danke!

Ich habe das Gesamtproblem aber just zwei Sekunden vorher gelöst und möchte meinen Ansatz kurz teilen.

Einem Shell Skript kann an anscheinend wie folgt eine Parameter übergeben:

sh meinSkript.sh Parameter

Im Skript dann mit $1 die Referenz darauf.

Für das Perl Skript habe ich mir einen Übergabeparameter gekniffen weil ich das
ja gar nicht brauch, ist mir aber erst nach dem Absenden eingefallen. Die Datei in der
das Skript sein Ergebnis speichert ist ja immer gleich =).

Viele Grüße Maveric
Bitte warten ..
Mitglied: hmarkus
17.01.2013 um 14:09 Uhr
Hallo Maveric,

allgemein ist es in der Shell so, das die Kommandozeilenparameter $1, $2, $3 usw. sind. Damit kannst Du mehrere Parameter nacheinander abarbeiten (falls erforderlich).
Übrigens ist $0 der Name des Skripts.

Bei Perl sind die Kommandozeilenparameter im Vektor @ARGV gespeichert. Sie lassen sich ansprechen z.B.
foreach (@ARGV) { 
    say $_; 
}
hierbei werden die Parameter aber ab 0 nummeriert, also $ARGV[0], $ARGV[1] usw.

Darf ich mal fragen, wieso Du zwei Skripten brauchst und nicht gleich alles mit Perl machst?

Markus
Bitte warten ..
Mitglied: Maveric
17.01.2013 um 16:22 Uhr
Zitat von hmarkus:
Hallo Maveric,

allgemein ist es in der Shell so, das die Kommandozeilenparameter $1, $2, $3 usw. sind. Damit kannst Du mehrere Parameter
nacheinander abarbeiten (falls erforderlich).
Übrigens ist $0 der Name des Skripts.

Bei Perl sind die Kommandozeilenparameter im Vektor @ARGV gespeichert. Sie lassen sich ansprechen z.B.
01.
 type=plain>foreach (@ARGV) { 
02.
>     say $_; 
03.
> }
hierbei werden die Parameter aber ab 0 nummeriert, also $ARGV[0], $ARGV[1] usw.

Darf ich mal fragen, wieso Du zwei Skripten brauchst und nicht gleich alles mit Perl machst?

Markus

Danke für die Info =) sehr gut zu wissen. Ich habe aktuell deshalb zwei Skripte weil
es einen Stand meines Wissens und ein Kompromiss zur Zeit ist. Ich habe die Inhalte im
ersten Schritt so gelöst das es schnell und sauber ist. Beide Skripte zu vereinen wäre
Schritt zwei. Das Shell Skript führt lediglich 3 greps auf Dateien aus und löscht nach dem
Perl Skript zwei Dateien. Solange ich jetzt nicht weis, wie ich ein grep geschickt ohne
Datenstream in einer Zeile, so wie auch in einem Shell Skript möglich umsetzte lasse ich es erst
mal so.

Grüße
Maveric
Bitte warten ..
Mitglied: hmarkus
17.01.2013 um 17:36 Uhr
Zitat von Maveric:
....
Beide Skripte zu vereinen wäre
Schritt zwei. Das Shell Skript führt lediglich 3 greps auf Dateien aus und löscht nach dem
Perl Skript zwei Dateien. Solange ich jetzt nicht weis, wie ich ein grep geschickt ohne
Datenstream in einer Zeile, so wie auch in einem Shell Skript möglich umsetzte lasse ich es erst
mal so.

Grüße
Maveric
Die Dokumentation zu perl heißt perldoc, die Dokumentation zur grep-Funktion in Perl findest Du mit
perldoc -f grep 
Markus
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
LAN, WAN, Wireless
Script bei starten einer VPN Verbindung mit Checkpoint-VPN Client (2)

Frage von maddig zum Thema LAN, WAN, Wireless ...

Python
gelöst PHP Skript via Python starten mit JSON Objekt als Parameter (3)

Frage von nullacht15 zum Thema Python ...

Windows Server
gelöst Rechner neu starten per Script via Aufgabenplanung klappt nicht (4)

Frage von MaxKlaus13 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...