guslan Geschrieben 5. Juni 2002 Geschrieben 5. Juni 2002 Hallo! Ich möchte eine Prozedur schreiben , der mir den Hostnamen von dem Rechner anzeigt und die FreeBSD Version Nummer ausgibt. Geht das überhaupt? Und wenn ja, wie??:confused:
nic_power Geschrieben 6. Juni 2002 Geschrieben 6. Juni 2002 Ja, klar geht das. Schau dir mal die manualpages zu "uname" und "hostname" an. Nic
guslan Geschrieben 6. Juni 2002 Autor Geschrieben 6. Juni 2002 Super. Jetzt kann ich meine Prozedur schreiben! Und wie kann ich die in Variable einsetzen?? So geht es ja nicht!!! host=hostname Version=uname Weißt jemand das??
nic_power Geschrieben 6. Juni 2002 Geschrieben 6. Juni 2002 Original geschrieben von guslan Super. Jetzt kann ich meine Prozedur schreiben! Und wie kann ich die in Variable einsetzen?? So geht es ja nicht!!! host=hostname Version=uname Weißt jemand das?? Du musst richtig Quoten, damit die Ausgabe der Kommandos auch tatsaechlich in den Variablen landet: #!/bin/sh hname=`hostname` vname=`uname -r` Nic
Schlaubi Geschrieben 10. Juni 2002 Geschrieben 10. Juni 2002 Original geschrieben von nic_power #!/bin/sh hname=`hostname` vname=`uname -r` Was ich hier noch schlauer finde ist diese Möglichkeit: #! /bin/sh hname=$(hostname) vname=$(uname -r) denn wenn du diese Möglichkeit nutzt dann kannst du 1. besser, sprich übersichtlicher quotieren und 2. du hast schlicht und einfach mehr Möglichkeiten. Ps: also funktionalen Unterschied gibts keinen - zumindest ist mir keiner bekannt, aber erstens ist es besser lesbar und zweitens ist kein Verbrauch an Hochkommas bzw. Rückwärtshochkommas gegeben.
nic_power Geschrieben 10. Juni 2002 Geschrieben 10. Juni 2002 Original geschrieben von Schlaubi ... und zweitens ist kein Verbrauch an Hochkommas bzw. Rückwärtshochkommas gegeben. Wieso? Werden die langsam knapp? . Nic
Schlaubi Geschrieben 10. Juni 2002 Geschrieben 10. Juni 2002 Ja die sind sehr teuer geworden wegen dem Euro - nein mal Spaß bei Seite - du weißt sicherlich was ich meine oder? ;-)
first_unix_nutzer Geschrieben 10. Juni 2002 Geschrieben 10. Juni 2002 Original geschrieben von Schlaubi Ja die sind sehr teuer geworden wegen dem Euro - nein mal Spaß bei Seite - du weißt sicherlich was ich meine oder? ;-) Ne Schlaubi, weiß ich nicht! Warum denn? Hochkommas sind doch besser!!!
DanielB Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 ` ` -> Alte Form $() -> Neuere Form Also Schlaubi, erleuchte uns doch mal mit dem was Du meinst.
Schlaubi Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 Oh, jetzt tut nicht so Ich hab doch gesagt - von der Funktionalität gibt es keinen Unterschied.... Aber es ist doch eindeutig übersichtlicher, dies hier zu benutzen: x=$('cat x') als dies hier: x="'`echo x`'" oder etwa nicht?? Und wenn sie oben nicht verbraucht werden - hat man sie unten eben noch frei ...und könnte sie einsetzen, falls man an Grenzen stößt, dies kann man im obigen Fall jedoch nicht, da die Shell nimmer weiß - welche Hochkommas, Doppelhochkommas oder Rückwärtshochkommas zusammen gehören.
DanielB Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 Hmmm.... nein. Einfacher wäre : x="x" oder x=`echo x`
nic_power Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 Original geschrieben von Schlaubi Aber es ist doch eindeutig übersichtlicher, dies hier zu benutzen: x=$('cat x') als dies hier: x="'`echo x`'" oder etwa nicht?? Das ist Uebungssache . Nic
Schlaubi Geschrieben 12. Juni 2002 Geschrieben 12. Juni 2002 nein, Jungs das hat nix mit Übungssachen zu tun, ich hab die Syntax früher ausschließlich benutzt, aber ich bin jetzt umgestiegen, weil es einfach (für mich) übersichtlicher ist, denn... auch bei: x=x bzw. x=`echo x` sollte man, damit es eindeutig - für die Shell bleibt dies so machen.... x="x" x="`echo x`" aber das ist Ansichtssache, also lassen wir das schönen Abend noch
dr.disk Geschrieben 12. Juni 2002 Geschrieben 12. Juni 2002 Was mit der alten Notation ebenfalls nicht geht sind Verschachtelungen: Bsp: echo `cat `ls`` geht einfach nicht, dafür funktionier aber echo $(cat $(ls)) wunderbar. Mir sind schon öfter Fälle begegnet bei denen so eine Verschachtelung ganz praktisch ist - mir fällt leider gerade keine ein...
Schlaubi Geschrieben 13. Juni 2002 Geschrieben 13. Juni 2002 @ dr.disk, du sprichst mir aus der Seele @ all sowas ist auch ein Grund, warum die neuere Form einfach schlauer anzuwenden ist. Einfach weil es beim alten nicht funktioniert und wenn du mal ein Shellskript basteln willst, dass nicht ganz trivial ist und du diese Verschachtelungen von Kommandos benötigst, dann stößt du mit der alten Form an die Grenze der Übersichtlichkeit. Es soll ja schließlich ein zweiter auch noch den Code des Programmierers blicken.
DanielB Geschrieben 17. Juni 2002 Geschrieben 17. Juni 2002 Original geschrieben von dr.disk Was mit der alten Notation ebenfalls nicht geht sind Verschachtelungen: Bsp: echo `cat `ls`` geht einfach nicht, dafür funktionier aber echo $(cat $(ls)) wunderbar. Mir sind schon öfter Fälle begegnet bei denen so eine Verschachtelung ganz praktisch ist - mir fällt leider gerade keine ein... echo `cat \`ls\`` Vobei mir beim Besten Willen nichts einfällt, wo ich ein solches Konstrukt brauchen könnte.
Schlaubi Geschrieben 24. Juli 2002 Geschrieben 24. Juli 2002 Original geschrieben von DanielB echo `cat \`ls\`` dieser Befehl lässt meine Shell cryptische Ausgaben machen, die dann meinen Rechner piepen lassen
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden