Hostname auslesen und vergleichen (shell)

T

tomac

Grünschnabel
Hallo ich habe das Problem das ich auf mehrere Rechnerguppen unterschiedliche befehle ausführen muss, allerdings nur ein skript verwenden kann, da die rechnergruppen einheitliche hostnamen(-anfgangsbuchstaben) haben, dachte ich ich unterscheide danach, bekomme es aber leider nicht hin.
Habe auch schon mit expr rumexperimentiert, komme aber nich weiter
am ende will ich etwas in der art haben, bzw dacht das es so aussehen könnte
Code:
if hostname=="abc*"  //vergleiche die ersten 3 Ziffern des Hostnamen mit string
then do123
else 345
fi

Hofe mir kann jemand helfen.

Gruß Tomac
 
Hi,

dafuer duerfte das switch-case statement der bash wie geschaffen sein:
http://tldp.org/LDP/abs/html/abs-guide.html#EX29

Wie du allerdings den Hostnamen in eine Variable bekommst, haengt wahrscheinlich stark vom konkreten OS ab. Auf meinen Ubuntu und Debian Systemen steht's direkt in HOSTNAME, aber ich weiss nicht ob das ein bash Feature ist, oder nur fuer Debian Derivate gilt, etc.

Edit:
Ausserdem sehe ich gerade, dass dieses Thema im falschen Forum gelandet ist; da es dir um ein Shell Skript geht, waere logischerweise das Shell Skripte Forum der korrekte Ort gewesen.

mfg,
bytepool
 
Zuletzt bearbeitet:
Wie du allerdings den Hostnamen in eine Variable bekommst, haengt wahrscheinlich stark vom konkreten OS ab. Auf meinen Ubuntu und Debian Systemen steht's direkt in HOSTNAME,
Da gibt's wenn dann auch noch den Befehl hostname ;) Oder die Datei /etc/hostname, die ist auf jedenfall nicht Debianspezifisch ;) Ich wusste noch garnicht, das es da auch ne Variable dazu gibt. ^^

@TE:
Woran hängst du den eigentlich. So wie ich des verstehe, hast du das ja garnicht gesagt.

Also, falls es daran liegt, wie du an den Hostname kommst, siehe bytpool bzw. mich.

Falls es aber daran mangelt, die ersten Buchstaben zu bekommen:
Um die einheitlichen Anfangsbuchstaben raus zu schneiden, würde ich cut (-b -<Anzahl der gleichen Buchstaben>) verwenden...

Falls es am Vergleichen selbst liegt:
Wurde ja oben schon gesagt.
 
Zuletzt bearbeitet:
So habs :-)
vielen dank für die Antworten, haben mich zumindest auf den weg gebracht.
Sorry das es im falschen Thema gelandet ist, war mein erster Beitrag hier und ich bin die Themenliste einfach sequentiell durch gegangen und war schon froh das da was zu Skriptsprachen stand.
HOST=`hostname`;
MYVAR=`expr $HOST : abc`;
if [ "$MYVAR" = "3" ]
then
echo das Praefix ist gleich bei $HOST
else
echo Praefix von $HOST ist anders
fi

so hats zumindest mal funktioniert, ist irgendwie keine schöne Lösung aber es tut was es soll;-)
Wenn jemand auf anhieb ne besser Lösung parat hat her damit, ansonsten nochmal danke für die schnellen Antworten.
Gruß Tomac
 

Ähnliche Themen

Last mit etc/passwd anzeigen lassen

Backup Skript automatisch ausführen mit udev

Java Development Kit Installation

Tonerstand via SNMP auslesen - Problem

Problem Linux<->Solaris bei Shell Skript

Zurück
Oben