Fehler in Skript

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Fehler in Skript

Beitrag von thilo » 13.02.2003 18:56:04

Hallo zusammen!

Mein Problem bezieht sich zwar nicht auf eine Installation. Trotzdem glaube ich, dass meine Frage in dieser Rubrik gut aufgehoben ist.........

Also:
Aus den einzelnen Variablen (CLIENT1 bis CLIENT4) möchte ich gerne einzelne Bestandteile, die durch einen Doppelpunkt getrennt sind, ausschneiden!
  • #!/bin/bash

    CLIENT1="PC 1:192.168.0.33"
    CLIENT2="PC 2:192.168.0.67"
    CLIENT3="Mac 1:192.168.0.105"
    CLIENT4="Mac 2:192.168.0.121"

    for VARIABLE in CLIENT1 CLIENT2 CLIENT3 CLIENT4
    do
    RECHNERNAME=`echo $VARIABLE | cut -d : -f 1`
    IP_ADRESSE=`echo $VARIABLE | cut -d : -f 2`
    echo $RECHNERNAME
    echo $IP_ADRESSE
    done

Warum funktioniert das so nicht?

Vielen Dank für Eure Mühe!


MfG

Thilo Engelbracht

thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Beitrag von thilo » 13.02.2003 19:34:52

Die gleiche Nachricht habe ich noch einmal in "Softwareprobleme" gepostet. Event. ist sie da besser aufgehoben.........


Gruß,

Thilo

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 13.02.2003 19:40:48

Hi,

ist zwar kein Shell Script, funktioniert aber auch:

Code: Alles auswählen

#! /usr/bin/perl -w

use strict;

my %clients = ( "PC 1" => "192.168.0.33",
	     "PC 2" => "192.168.0.67",
	     "Mac 1" => "192.168.0.105",
	     "Mac 2" => "192.168.0.121");

foreach my $key (keys %clients)
{
    print $key,"\n";
    print $clients{$key},"\n";
}
Die Rechnernamen und Ihre Adressen werden erst in einem Hash gespeichert und anschließen dann alle nacheinander über die foreach Schleife ausgelesen. Mit der Funktion keys werden die Schlüsselwörte des Hash ermittelt.

by, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 13.02.2003 20:06:59

thilo hat geschrieben:Die gleiche Nachricht habe ich noch einmal in "Softwareprobleme" gepostet. Event. ist sie da besser aufgehoben.........
Bitte nur einmal posten, wenn's Forum falsch ist einfach einen Mod fragen, ob er den kram verschiebt.

TNX
Patrick (ja, ich lebe noch.... ;-))
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 13.02.2003 20:11:58

pdreker hat geschrieben:Patrick (ja, ich lebe noch.... icon_wink.gif
Ferien?

thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Beitrag von thilo » 13.02.2003 21:08:00

Hallo zusammen!

@blackm: Vielen Dank für Dein Perl-Skript.

Kann man mein Problem auch durch Shell-Programmierung lösen? Das wäre mir eigentlich lieber.........

Vielen Dank für Eure Mühe!


Gruß aus Hilden,

Thilo

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Re: Fehler in Skript

Beitrag von ernohl » 13.02.2003 21:39:48

thilo hat geschrieben: for VARIABLE in CLIENT1 CLIENT2 CLIENT3 CLIENT4

Code: Alles auswählen

for  VARIABLE in "$CLIENT1" "$CLIENT2" "$CLIENT3" "$CLIENT4"
thilo hat geschrieben:Warum funktioniert das so nicht?
Wegen des Leerzeichens in deinen Variablen und dem fehlenden '$' vor den Variablen.
Gruß
ernohl

thilo
Beiträge: 241
Registriert: 12.12.2002 22:48:44

Beitrag von thilo » 13.02.2003 23:07:33

Hallo "ernohl",

habe Deinen Verbesserungsvorschlag für das Skript ausprobiert. Leider funktioniert es noch immer nicht.........

Kannst Du es event. nochmal prüfen?

Vielen Dank für Deine Mühe!


Gruß,

Thilo

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Beitrag von ernohl » 13.02.2003 23:15:18

Code: Alles auswählen

erno@flinker:~$ cat ip.sh
CLIENT1="PC 1:192.168.0.33" 
CLIENT2="PC 2:192.168.0.63" 
CLIENT3="Mac 1:192.168.0.133" 
CLIENT4="Mac 1:192.168.0.163" 

for VARIABLE in "$CLIENT1" "$CLIENT2" "$CLIENT3" "$CLIENT4"
do 
RECHNERNAME=`echo $VARIABLE | cut -d: -f1`
IP=`echo $VARIABLE | cut -d: -f2`
echo $RECHNERNAME
echo $IP
done

erno@flinker:~$ bash ip.sh
PC 1
192.168.0.33
PC 2
192.168.0.63
Mac 1
192.168.0.133
Mac 1
192.168.0.163
Ach ja: cut ist ein blödes Kommando. Nimm in Zukunft lieber awk.
Gruß
ernohl

Antworten