Top-Themen

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, 5708 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
VB for Applications
VB-Script in VB-Script starten und Parameter übergeben
gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

Batch & Shell
Problem beim Starten eines Bash-Shell-Scripts mit einem anderen
gelöst Frage von Fabian-HaasBatch & Shell14 Kommentare

Hallo, Ich habe folgendes Bash-Script geschrieben, welches nach einer Eingabe des Benutzers ein bestimmtes anderes Bash-Script starten soll. Dieses ...

Perl
Perl script zur Auswertung einer Telefonanlage
gelöst Frage von Fl0wMAGPerl2 Kommentare

Hallo leute, ich bin seit einiger Zeit in der Ausbildung zum Systemintegrator und soll da doch bitte mal in ...

Windows Tools
Power Shell Informationen zu Parameter Argumente
Frage von geTr0ffEnWindows Tools2 Kommentare

Hi, es ist ja in Power Shell möglich mit "help" beispielsweise Informationen zu dem cmdlet zu bekommen, detaillierte Infos ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...