noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29386
Wohnort: WW
|
Hallo, @user unknown: Der Unterschied zwischen Codebox und Befehlsbox ist, wie der Name schon sagt: #!/bin/sh ist ein Code Fragment, was in einem Skript steht, während ein Befehl ist, den du tatsächlich eingibst. Daher die Unterscheidung. Es ginge natürlich auch als Codebox, nur ist die Zeilennummerierung bei einer Zeile sinnfrei. Das mit der Höhe stimmt, ist mir nie aufgefallen. Das wäre aber eine ggf. sinnvolle grundsätzlich Änderung des Stylesheets von Inyoka. Gruß, noisefloor
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
noisefloor schrieb: Hallo, @user unknown: Der Unterschied zwischen Codebox und Befehlsbox ist, wie der Name schon sagt: #!/bin/sh ist ein Code Fragment, was in einem Skript steht, während ein Befehl ist, den du tatsächlich eingibst. Daher die Unterscheidung.
Was ich tatsächlich eingebe, und was ich als Script tatsächlich eingebe, und was mein Script dann tatsächlich eingibt, das sind alles so Fragen. Selten spielt es eine Rolle. Beim Shebang tut sich in der Tat wenig Spektakuläres, wenn man ihn interaktiv in der Shell eingibt. Aber sonst - siehe Anhang. Ein erster Lernschritt ist es, zu begreifen, dass ein Skript die Aneinanderreihung von Befehlen sein kann, die man auch interaktiv eingeben könnte, und dass man umgekehrt interaktiv das meiste tun kann, was auch in einem Skript getan werden könnte. Dagegen ist eine Schubladenbildung: Hier das Skript, dort der Befehl - meist willkürlich, und hat überhaupt kein didaktisches Ziel, sondern ist die Beschwörung des Pseudo. Umgekehrt kann man natürlich die Verwendung der zwei Optionen funktional betrachten - was ist wirklich da? Und dann habe ich hier Syntaxhighlightening, evtl. Zeilennummern, ein Bubi-Hellblau; dort ein existenzialistisches Schwarz, kein Higlightening, eine schlankere Box (leider nicht beschränkbar auf die Breite des Codes). Nun - hinter einem Hashsymbol ist nun wenig zu tun für ein Bash-Syntaxhighlightening, nicht?
- Bilder
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
Newubunti schrieb: Ich hätte halt gedacht, dass ich hier - auch falls ich von dem Problem vielleicht nicht konkret betroffen bin - wenigstens noch durch einen Halbsatz eine kurze Begründung geliefert bekomme, z.B. etwa in der Form ", weil dann...", weil es sich hier halt um Hilfe für Anfänger handeln soll.
Du willst als Anfänger nicht Gitarre hinter dem Kopf spielen, weil es schon vor dem Bauch nicht so einfach ist. Wenn Du aber so weit bist, hinter dem Rücken Gitarre spielen zu können, brauchst Du die Anleitung nicht. Es ist nur so, dass Du als Anfänger jetzt weißt, dass man theoretisch nicht vor dem Bauch spielen muss.
Ich zweifle aufgrund meiner eigenen Erfahrung daran, dass Anfänger immer alles so verstehen, wie der Autor eines Artikels sich das denkt.
Darauf hat rklm schon ganz in meinem Sinne geantwortet.
|
Newubunti
Anmeldungsdatum: 16. Februar 2008
Beiträge: 5139
|
user unknown schrieb: Newubunti schrieb: Ich hätte halt gedacht, dass ich hier - auch falls ich von dem Problem vielleicht nicht konkret betroffen bin - wenigstens noch durch einen Halbsatz eine kurze Begründung geliefert bekomme, z.B. etwa in der Form ", weil dann...", weil es sich hier halt um Hilfe für Anfänger handeln soll.
Du willst als Anfänger nicht Gitarre hinter dem Kopf spielen, weil es schon vor dem Bauch nicht so einfach ist. Wenn Du aber so weit bist, hinter dem Rücken Gitarre spielen zu können, brauchst Du die Anleitung nicht. Es ist nur so, dass Du als Anfänger jetzt weißt, dass man theoretisch nicht vor dem Bauch spielen muss.
Naja, mag sein. Ich war aber auch nicht der einzige, der über diese Formulierung gestolpert ist: Heinrich Schwietering schrieb: Noch ein Beispiel aus dem Artikel, da du ja Konkretes haben wolltest: So, das hat die Sache etwas subtiler gemacht, und wer sich davon angeregt fühlt, der schreibt in die eigenen Scripte auch noch Weichen hinein, die unterscheiden, ob das Script mit vollem Pfad oder relativem Pfad aufgerufen wurde.
Ah, danke für die wertvolle Information; Weichen kannte ich als Anfänger bei Schienen (Straßenbahn etc.) vielleicht noch aus meinen Lautsprecherboxen. Es gibt keinerlei Bezüge zu anderen Artikeln, die ggf. erklären, was ein z.B. ein absoluter, was ein relativer Pfad ist (ergo: es fehlt der Wissensblock), geschweige denn, was eine Weiche ist und wie sie in diesem Zusammenhang gesetzt wird. Also auch das so wie es jetzt dort steht imho insgesamt überflüssig, weil nicht erhellend, sondern weiter verwirrend.
Ich meine, ich poche jetzt nicht darauf, mich hier durchsetzen zu wollen, aber wenn von 10 Leuten, die sich Deinen Artikel durchgelesen haben, 2 - also 20% - unabhängig voneinander diese Stelle ausdrücklich ansprechen, dann würde ich diese an Deiner Stelle umformulieren. Für was ist denn das Korrekturlesen sonst bitte da? Gruß,
Martin
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
Newubunti schrieb: Naja, mag sein. Ich war aber auch nicht der einzige, der über diese Formulierung gestolpert ist:
Es ist ja auch kein Problem. Du scheinst davon auszugehen, dass man beim Lernen nicht über was stolpern darf. Wieso nicht?
Ich meine, ich poche jetzt nicht darauf, mich hier durchsetzen zu wollen, aber wenn von 10 Leuten, die sich Deinen Artikel durchgelesen haben, 2 - also 20% - unabhängig voneinander diese Stelle ausdrücklich ansprechen, dann würde ich diese an Deiner Stelle umformulieren. Für was ist denn das Korrekturlesen sonst bitte da?
Wieso - ich würde eher sagen, der Rest muss überarbeitet werden, wenn man sich an den nicht erinnert, weil es hier rein da raus geht. ☺
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
So - generell ist der Artikel jetzt fertig und kann aus der Baustelle raus.
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11293
Wohnort: Bremen
|
Hi! Hab noch ein paar wiki/Wikipedia-Links dazu getan, damit klarer wird, was gemeint ist. Außerdem genauer ausgeführt, wann /bin/sh ein Link auf /bin/bash sein kann ("gelegentlich" impliziert, dass es vorkommen kann, es kann aber unter Ubuntu nur vorkommen, wenn es explizit geändert wird). In dem Zusammenhang ist aber mein Einwand von hier:
Noch mal was rein Inhaltliches, aus dem Artikel zitiert: Zurück zur Komplexität: Jetzt steht im Script als Shebang #!/bin/sh, aber im Verzeichnis /bin ist sh ein symbolischer Link der auf dash weist, oder in früheren Zeiten auf die bash. Dann kann man doch auch gleich #!/bin/dash schreiben, das ist doch dann gleichbedeutend? Nein. ☺
Die Shell kann untersuchen, ob sie so oder so aufgerufen wurde, und sie tut das auch - zumindest die bash tut es. Sie stellt fest, dass sie als 'sh' aufgerufen wurde, und verhält sich so, als habe man die Option --posix verwendet (genaueres in der manpage von Bash auf den ersten Seiten).
Hier ist imho etwas nicht so ganz logisch. Der Benutzer schreibt in dieser Beschreibung ´#!/bin/sh´, was in Standard-Ubuntu-Installationen mindestens seit Hardy (in Dapper war das anders) /bin/dash aufruft, wenn der Benutzer den Link nicht geändert hat (was er vermutlich nicht tut, wenn er ein Anfänger im shell-skripten ist). Die bash stellt fest, wie sie aufgerufen wird. Das ist zwar eine interessante Tatsache. Aber das ist in diesem Zusammenhang (nämlich dass /bin/sh einen Link auf /bin/dash darstellt), völlig unerheblich. Es wäre nur dann von Bedeutung, wenn /bin/bash via link von /bin/sh aufgerufen wird - wird sie aber im Normalfall ja nicht. Fehler scheinen ja dann aufzutreten, wenn man z.B. bash -Funktionen verwenden will, aber im shebang #!/bin/sh stehen hat und somit dash verwendet.
für mein Verständnis nicht aufgelöst. so long hank
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
Ich habe darauf bereits geantwortet, dass einerseits nicht nur treue Ubuntuuser hier posten und fragen, und da der Artikel v.a. dazu dienen soll, die Antworten in S&P zu unterstützen, ein Hinweis darauf, dass wir kein Knoppix/Mint und Munt-forum sind, nicht weiterhilft, einerseits; andererseits ein ähnlicher Mechanismus auch für alle anderen shebangverwendenden Programme denkbar, wenn auch nicht üblich ist. Eine Erwiderung auf diese Argumente habe ich bislang nicht gesehen, und erlaube mir daher das Argument schlicht zu wiederholen.
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11293
Wohnort: Bremen
|
Hi! Dann sollte es imho im Artikel klarer auftauchen. Im Moment ist die Argumentation nicht schlüssig, zumindest aber irreführend. Dort steht sinngemäß, dass es einen Unterschied macht, ob im Shebang #!/bin/sh steht oder #!/bin/dash . Das führt aber, so weit ich es sehe, erstmal nicht zu Problemen, und daraus resultieren meines Verständnisses nach ja auch nicht die Probleme, die du zu lösen gedenkst. Die "Erläuterung", dass #!/bin/bash/ eine posix-kompatible Version der bash aufruft (und nicht der dash) ist für diese Aussage weiterhin nicht relevant. Aus der Formulierung ist nicht ersichtlich, dass andere shebang-verwendende Programme ggf. ähnlich reagieren, wenn sie als /bin/sh aufgerufen werden. Es ist in diesem Zusammenhang nicht wichtig; und dass es denkbar ist, ist für mich kein Argument, es im Wiki aufzuführen. Denkbar ist Vieles. Dass wir ein Ubuntu-Wiki sind, ist imho da wesentlich relevanter. Dazu würde ich dann, wenn überhaupt, eine Hinweisbox am Anfang des Artikel vorziehen, die Nutzer anderer Distributionen darauf hinweist, dass der Effekt anderswo ggf. anders ist, und man nachschauen sollte, was mit der shebang-Zeile #!/bin/sh denn tatsächlich aufgerufen wird. Die "Komplexität" ist imho anders gelagert, als sie im Artikel dargestellt wird; auf Vermutungen zu anderen Distributionen und eventuell mögliche Veränderungen in der Zukunft können wir im Wiki imho aber nicht eingehen, auch das hatte ich sinngemäß schon geantwortet. so long, und Schöne Bescherung!
hank
|
aasche
Anmeldungsdatum: 30. Januar 2006
Beiträge: 14259
|
user unknown schrieb: So - generell ist der Artikel jetzt fertig und kann aus der Baustelle raus.
Im Gegensatz zur Version von vor 14 Tagen ist der Artikel inzwischen les- und nachvollziehbar. Ich hoffe, die Einigung ueber die letzten offenen Punkte braucht nicht bis naechstes Jahr ☺
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
Heinrich Schwietering schrieb: Ich kann Dir nicht ganz folgen. Was schlägst Du konkret vor?
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11293
Wohnort: Bremen
|
Hi! user unknown schrieb:
Was schlägst Du konkret vor?
Na, z.B. eine Hinweisbox ganz an den Anfang, mit dem Inhalt, dass die shebang-Zeile #!/bin/sh für andere Distributionen etwas anderes bedeuten kann als #!/bin/dash oder die Verwendung von /bin/bash ohne shebang, der geneigte Knoppix/Suse/Arch/Minttäfelchen/wasweißichfürnLinux-Nutzer, der ja anscheinend - aufgrund unserer Qualität - mit shebang-Problemen hier aufschlägt, also bitte nachschaut, was er in /bin/sh so vorfindet (wg. posix-Kompabilität etc.). Die "Komplexität", dass #!/bin/sh/ != #!/bin/dash ist, raus, weil das unter Ubuntu nicht zu Problemen führt, und den werten Ubuntu-Nutzer (der ja weiterhin der Hauptadressat dieses Wikis ist) nur potentiell verunsichert. Die Ausführungen zu #!/bin/sh als shebang (oder /bin/sh) als link zu /bin/bash und deren bemerkenswerten Fähigkeiten, können in eine "Expertenbox", wie auch immer, falls sie dir so wichtig (weil ja wahr...) sind. Kann morgen mal einen konkreten Vorschlag machen, jetzt muss ich erstmal das opulente Heilig-Abend-Menü verdauen... so long hank
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11293
Wohnort: Bremen
|
Hi! Hinweisbox vielleicht so: Hinweis:Die symbolische Verknüpfung /bin/sh/ führt unter Ubuntu seit Version 8.04 Hardy Heron stets auf /bin/dash. Unter anderen Distributionen kann das Verknüpfungsziel eine andere Shell sein, insofern sind die hier gemachten Aussagen ggf. nicht direkt übertragbar!
Und da unter Ubuntu die Verwendung der shebang-Zeile !#/bin/sh den selben Effekt hat wie !#/bin/dash , diese Ausführungen dazu raus aus dem Artikel. Stattdessen eine Expertenbox, z.B. Experten-Info:Der Aufruf einer Shell über die symbolische Verknüpfung /bin/sh (mittels shebang #!/bin/sh oder direkt) führt zur Verwendung einer POSIX-kompatiblen Version 🇬🇧 der aufgerufenen Shell. Insofern kann es auch bei theoretisch möglichem Aufruf der bash über diesen Verknüpfung zu Fehlern kommen, da ggf. vorhandenen Funktionen der bash nicht verwendet werden können, weil sie nicht posix-konform sind. Näheres in der Manpage zur bash. Sinngemäß kann das auch für anderer Interpreter gelten, die über einen shebang-Eintrag oder als Verknüpfungsziel von /bin/sh aufrufbar sind, wenn die Art des Aufrufs für die Verwendbarkeit von Funktionen von Belang ist (dazu empfiehlt sich, die entsprechenden Dokumentationen zu Rate zu ziehen). Sind die Vorschläge nachvollziehbar? Verständlich? Sind noch andere Dinge nicht deutlich? Gut wäre sicherlich (wie ja bereits angemerkt) auch noch ein prägnantes Beispiel einer Fehlermeldung, wenn mit dem shebang-Eintrag etwas nicht stimmt. Gibt es da typische Ausgaben? Das würde dem Nutzer, der zunächst forscht, woran sein Skript scheitert, eher die Möglichkeit geben, den Artikel auch ohne Hilferuf im Forum zu finden - ich z.B. schmeiße gerne Fehlermeldungen oder Teile daraus, die mir wichtig erscheinen, in die Suchmaschine meiner Wahl, um auf Hinweise zu einer Lösung zu stoßen. Außerdem würde ich auch eine weitere Erläuterung zu #!/usr/bin/env INTERPRETER für den zweistufigen Abruf eines Interpreters für sinnvoll halten, also z.B. eine Verlinkung zu env. Die Zielgruppe dieses Artikels sollen ja eher Anfänger sein; ich z.B. habe aufgrund der Baustelle nicht verstanden, was es damit auf sich hat (und, klar, könnte man jetzt wieder argumentieren, dass es ja den Horizont erweitern kann, wenn man versucht, etwas zu verstehen. Aber das Wiki ist ja kein Quiz-Spiel 😉). Die englische Wikipedia-Seite zu shebang ist übrigens imho auch empfehlenswert. so long hank
|
user_unknown
(Themenstarter)
Anmeldungsdatum: 10. August 2005
Beiträge: 17562
Wohnort: Berlin
|
Ich habe anfangs gehofft jmd. anderes würde auch Stellung dazu nehmen, weil meine Kritik jetzt nicht ganz unbefangen ist, und selbst wenn sie gerechtfertigt wäre vielleicht als revanchistisch wahrgenommen wird. Dann hatte ich keine Zeit für eine Würdigung in Ruhe, aber nun will ich es versuchen.
Heinrich Schwietering schrieb: Hinweis:Die symbolische Verknüpfung /bin/sh/ führt unter Ubuntu seit Version 8.04 Hardy Heron stets auf /bin/dash. Unter anderen Distributionen kann das Verknüpfungsziel eine andere Shell sein, insofern sind die hier gemachten Aussagen ggf. nicht direkt übertragbar!
Wieso "stets"? Wieso muss unbedingt etwas unterstrichen werden? Ich hatte es bereits kritisiert, und ohne auf meine Kritik einzugehen wird einfach munter weiter unterstrichen. Hunderte Bücher der Literatur kommen ohne Unterstreichungen aus - wieso das Wiki nicht? Auch mein Lexikon von Vorwebzeiten unterstreicht nichts. Und wieso wird so ausufernd mit diesen Boxen, die den Lesefluss willkürlich unterbrechen, operiert?
Und da unter Ubuntu die Verwendung der shebang-Zeile !#/bin/sh den selben Effekt hat wie !#/bin/dash , diese Ausführungen dazu raus aus dem Artikel. Stattdessen eine Expertenbox, z.B. Experten-Info:"Der, Aufruf, einer, Shell, über, die, symbolische, Verknüpfung, , /bin/sh, , (mittels, shebang, #!/bin/sh , oder, direkt), führt, zur, Verwendung, einer, POSIX-kompatiblen, Version, 🇬🇧, der, aufgerufenen, Shell., Insofern, kann, es, auch, bei, theoretisch, möglichem, Aufruf, der, bash, über, diesen, Verknüpfung, zu, Fehlern, kommen, da, ggf., vorhandenen, Funktionen, der, bash, nicht, verwendet, werden, können, weil, sie, nicht, posix-konform, sind., Näheres, in, der, Manpage, zur, bash.
Was ist das für eine sprachliche Konjunktivhölle? Will man sagen, dass eine Sache nicht der Fall ist, sondern möglich, so genügt es zu sagen "kann", "möglich", oder "theoretisch", aber doch nicht alles auf einmal! Fast zwangsläufig geht die Grammatik dabei baden.
Insofern kann es auch bei Aufruf der bash über diese Verknüpfung zu Fehlern kommen, ...
Aber natürlich nicht über diese, sondern über eine Verknüpfung.
... da ggf. vorhandenen Funktionen der bash nicht verwendet werden können, weil sie nicht posix-konform sind.
Funktionen der Bash sind ggf. vorhanden? Wie das? Ist es ein sich selbst verändernder Virus? Mal sind die Funktionen da, mal nicht?
Sind die Vorschläge nachvollziehbar? Verständlich? Sind noch andere Dinge nicht deutlich?
Unkorrigiert ist es unverständlich, und m.E. ist es auch im Großen und Ganzen unverständlich. Du willst eben keine Hilfe zur Fehlersuche schreiben, sondern einen Lexikonartikel, der auch alle Features nutzt, die das Wiki bietet - Boxen, Unterstreichung, monospace-Schrift, Skripte und vielleicht noch 2-3 Tabellen, wenn sich ein Anlass findet. Ohne das Ziel einen Fehler zu beseitigen stehen die verschiedenen Aspekte aber jetzt sinnlos zusammengewürfelt herum, und dann bildet man so Satzungetüme, mit 4 Konjunktiven hintereinander, theoretisch, gegebenenfalls, möglich, kann.
Gut wäre sicherlich (wie ja bereits angemerkt) auch noch ein prägnantes Beispiel einer Fehlermeldung, wenn mit dem shebang-Eintrag etwas nicht stimmt. Gibt es da typische Ausgaben?
Das geht leider nicht, weil es ja unterschiedliche Bashkonstrukte gibt, die in unterschiedlichen Kontexten nicht verstanden werden, und damit unterschiedliche Fehlermeldungen provozieren. Die dash erkennt ja nicht fremde Syntax, sondern stellt Verletzungen ihrer Syntax fest.
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11293
Wohnort: Bremen
|
Hi! Frohet Neuet! (wie der Berliner zu sagen pflegt...). @ user unknown: Zu deinem Beitrag: "Stets" soll darauf hinweisen, dass es unter Ubuntu - ggf. im Gegensatz zu anderen Distributionen - so ist. Die Unterstreichung ist die Formatierung, die im Wiki für Hervorhebungen verwendet wird, sie muss keineswegs unbedingt verwendet werden. Im relevanten Teil von Wiki/Syntax steht die Aufforderung, sie eher sparsam zu verwenden. Die Verwendung von zwei Boxen ist imho nicht "ausufernd"; und sie sollen den Lesefluss unterbrechen, weil dort etwas Wichtiges drinsteht. Du solltest nochmal bei den Forenregeln - Zitate nachlesen, dann würdest du feststellen, dass hier in Zitaten nichts geändert werden soll; das gibt höchstens Ärger mit den Mods. Kommasetzung beherrsche ich imho ganz gut; der Versuch des Lächerlichmachens ist wenig zielführend (OT: "Sophismus" ist tatsächlich der falsche Begriff, es geht imho eher um Rabulistik). Aber ich gehe trotzdem auf die Ausführungen ein: Natürlich geht die Grammatik nicht baden: da ich genau diese Verknüpfung /bin/sh meine, (über andere spekuliere ich nicht weiter), schreibe ich das auch so (rein grammatikalisch betrachtet wäre beides möglich). Die Funktionen, die die Bash grundsätzlich hat, sind mit dem Aufruf über den symbolischer Link /bin/sh, wie du ja weißt, z.T. nicht gegeben, wenn sie nicht posix-konform sind, in sofern sind ggf. vorhandene Funktionen so tatsächlich nicht nutzbar. Wenn ich dich richtig verstanden habe, gehen etliche Fehler mit der Verwendung von #!/bin/sh als shebang-Zeile darauf zurück, dass eben nicht die bash aufgerufen wird, oder, selbst wenn das Verknüpfungsziel /bin/bash wäre, damit nicht alle Funktionen der bash verwendet werden könnten. Mit Konjunktiven drücke ich diese Eventualitäten aus; es kann ggf. zu Fehlern kommen, es muss aber nicht eintreten (nochmal die Einschränkung: wenn posix-konforme Funktionen verwendet werden sollten). Dass es dir unverständlich ist, was ich dort geschrieben habe, erscheint mir wenig glaubwürdig. Deine Mutmaßungen über meine Motivation hingegen sind rein spekulativ, zudem schlicht falsch, und in diesem Zusammenhang völlig irrelevant. Aber der Inhalt der Boxen sind ja, wie du hoffentlich richtig gelesen hast, Vorschläge. Andere Meinungen haben wir momentan nicht; vielleicht könntest du deine Verbesserungsvorschläge dazu in einem zusammenhängenden Text darstellen? Inhaltlich habe ich deinem Beitrag keine Verbesserungsvorschläge zu den Boxen entnehmen können, über die Formulierungen und Konjunktive kann man ja reden. Ich weiß jetzt nicht so genau, was du haben möchtest. Zum Punkt "Fehlermeldung": Wenn es keine typischen Fehlermeldungen gibt, kann man sie natürlich nicht einbauen. Das wäre damit ja geklärt. so long hank
|