Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 5589 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: 64748
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 64748:
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: 64748
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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Bash Script stoppt nach start (4)

Frage von flooo89 zum Thema Batch & Shell ...

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

Frage von nullacht15 zum Thema Python ...

Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

Frage von Lynkon zum Thema TK-Netze & Geräte ...