Veröffentlicht 5. Juni 200223 j 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:
6. Juni 200223 j 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??
6. Juni 200223 j 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
10. Juni 200223 j 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.
10. Juni 200223 j Original geschrieben von Schlaubi ... und zweitens ist kein Verbrauch an Hochkommas bzw. Rückwärtshochkommas gegeben. Wieso? Werden die langsam knapp? . Nic
10. Juni 200223 j Ja die sind sehr teuer geworden wegen dem Euro - nein mal Spaß bei Seite - du weißt sicherlich was ich meine oder? ;-)
10. Juni 200223 j 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!!!
11. Juni 200223 j ` ` -> Alte Form $() -> Neuere Form Also Schlaubi, erleuchte uns doch mal mit dem was Du meinst.
11. Juni 200223 j 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.
11. Juni 200223 j 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
12. Juni 200223 j 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
12. Juni 200223 j 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...
13. Juni 200223 j @ 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.
17. Juni 200223 j 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.
24. Juli 200223 j Original geschrieben von DanielB echo `cat \`ls\`` dieser Befehl lässt meine Shell cryptische Ausgaben machen, die dann meinen Rechner piepen lassen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.