Mahlzeit! Ganz unten innen drin ist es egal, ob die Datei eine .sh Endung hat. In /etc/init.d endet ca. ein Dritte auf .sh. Für Zufall oder Tradition ist das viel zu viel, niemand tippt freiwillig 3 unnütze Zeichen ein. Einzige Erklärung: Irgendwo wird der Unterschied für schwarze Magie genutzt, aber wofür?
Bauform B. schrieb: > Für Zufall oder Tradition ist > das viel zu viel, niemand tippt freiwillig 3 unnütze Zeichen ein. > Einzige Erklärung: Irgendwo wird der Unterschied für schwarze Magie > genutzt, aber wofür? Eher „Ist halt so und keiner hat’s für nötig befunden, es zu ändern“. Solange die Scripte ausführbar sind, und eine korrekte ›#!‹-Zeile (in Fachkreisen „Shebang“-Zeile genannt, aber das alleine zu nennen, hätte wohl für verständnislose Blicke gesorgt) existiert, gibt es technisch keinen Unterschied. Kannst es ja ausprobieren – dabei drauf achten, dass symbolische Verknüpfungen beim Umbenennen des Ziels kaputtgehen. Die drei Zeichen zu tippen, stellt hingegen keinen Aufwand dar, der einer Abwägung bedürfte – das nimmt bei jemandem, der mit der Tastatur umgehen kann, nicht einmal ’ne Sekunde in Anspruch und im Zweifelsfall ist die bewusste Entscheidung, es bei einem Shellscript nicht zu schreiben, für jemanden, der’s normalerweise automatisch dranhängt, zeitlich teurer. Es wäre geschickt gewesen, wenn du das betreffende OS benannt hättest. Musste ein wenig suchen, bis ich hier eines gefunden habe, das überhaupt noch das ›init.d/‹-Verzeichnis hat …
:
Bearbeitet durch User
Jack V. schrieb: > Eher „Ist halt so und keiner hat’s für nötig befunden, es zu ändern“. würde ich auch so sehen. > Die drei Zeichen zu tippen, stellt hingegen keinen Aufwand dar, der > einer Abwägung bedürfte – das nimmt bei jemandem, der mit der Tastatur > umgehen kann, nicht einmal ’ne Sekunde in Anspruch Du tippst die normal sowieso nicht, sondern verwendest einfach schon lange vor dem Ende des Dateinamens die Autocompletion mit Tab. Diese Zeichen spielen also was das Tippen angeht gar keine Rolle.
Gerd E. schrieb: > Du tippst die normal sowieso nicht, sondern verwendest einfach schon > lange vor dem Ende des Dateinamens die Autocompletion mit Tab. Beim Anlegen halt schon. Bei existierenden Files hast du natürlich Recht – das ist mir hier gar nicht mal eingefallen, weil irgendwie selbstverständlich.
Jack V. schrieb: > „Ist halt so und keiner hat’s für nötig befunden, es zu ändern“ Gerd E. schrieb: > würde ich auch so sehen. Ihr seid mir schöne Wissenschaftler ;) Jack V. schrieb: > Die drei Zeichen zu tippen, stellt hingegen keinen Aufwand dar Mechanisch nicht, geistig und moralisch schon. Wo sonst hat ausführbares eine Endung? "ls.exe -la" vielleicht? Aber, nur eine Tasse Kaffee später: Ubuntu 7.1, /etc/init.d/rc
1 | # Debian Policy §9.3.1 requires .sh scripts in runlevel S to be sourced |
2 | # However, some important packages currently contain .sh scripts |
3 | # that do "exit" at some point, thus killing this process. Bad! |
4 | #[ S = "$runlevel" ] && sh=. |
5 | for script in $scripts ; do |
6 | case "$script" in |
7 | *.sh) |
8 | startup_progress $debug $sh "$script" $action |
9 | ;; |
10 | *) |
11 | startup_progress $debug "$script" $action |
12 | ;; |
13 | esac |
14 | done |
In Debian 8 und 9 hab' ich das nicht mehr gefunden, jetzt spendiert man eben für jedes Script eine extra Shell, der Strom kommt ja aus der Steckdose ;) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=513955
Bauform B. schrieb: > jetzt spendiert man > eben für jedes Script eine extra Shell, der Strom kommt ja aus der > Steckdose ;) Auf's Jahr gesehen kommt da schnell mal ein Zehntel Cent zusammen.
Jack V. schrieb: > Bauform B. schrieb: >> Für Zufall oder Tradition ist >> das viel zu viel, niemand tippt freiwillig 3 unnütze Zeichen ein. >> Einzige Erklärung: Irgendwo wird der Unterschied für schwarze Magie >> genutzt, aber wofür? > > Eher „Ist halt so und keiner hat’s für nötig befunden, es zu ändern“. > Solange die Scripte ausführbar sind, und eine korrekte ›#!‹-Zeile (in > Fachkreisen „Shebang“-Zeile genannt, aber das alleine zu nennen, hätte > wohl für verständnislose Blicke gesorgt) existiert, gibt es technisch > keinen Unterschied. Kannst es ja ausprobieren – dabei drauf achten, dass > symbolische Verknüpfungen beim Umbenennen des Ziels kaputtgehen. Werden die Scripte nur via init aufgerufen, braucht es das #!/bin/sh regelmässig nicht, weil ohnehin klar ist, dass sie von /bin/sh gesourced werden (sollten). Benutzt nur jemand etwas anderes als /bin/sh als Loginshell, und ist die nicht hinreichend kompatibel genug zu /bin/sh, und will unbedingt eines der Skripte von Hand starten: Ja, da ist das #!/bin/sh dann natürlich hilfreich. Der Suffix .sh ist dagagen für überhaupt nichts gut. ☺
Bauform B. schrieb: > Mechanisch nicht, geistig und moralisch schon. Gerade geistig ist der Aufwand höher, es nicht zu schreiben. Zumindest mit Leuten, die’s halt so gelernt haben. Und was genau wäre die moralische Komponente? Bauform B. schrieb: > Wo sonst hat ausführbares > eine Endung? "ls.exe -la" vielleicht? Falsches System? Die Endung bei Scriptfiles ist lediglich ’n Hinweis für die Shell, welcher Interpreter zu nutzen wäre; aufgrund der Shebang-Zeile ist’s heute eher ein Hinweis für den User. Ausführbare Binaries hatten hier hingegen noch nie eine entsprechende Endung > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=513955 Spräche ja dafür, dass die Scripte von damals halt ihren Namen behalten haben. Insbesondere sind’s zumindest auf dem System, auf dem ich nachgeschaut habe (du verweigerst ja leider die Angabe des Systems, auf das du dich beziehst) von Debian stammende Scripte, welche die Endung haben. Bauform B. schrieb: > jetzt spendiert man > eben für jedes Script eine extra Shell, der Strom kommt ja aus der > Steckdose ;) In welchem Jahrzehnt bist du denn hängengeblieben? Jetzt macht systemd den Job – und man kann dem viel vorwerfen – aber dass es den Systemstart ineffizient gestalten würde, gehört nicht dazu. Bauform B. schrieb: > Ihr seid mir schöne Wissenschaftler Joa … sorry, dass wir versucht haben, dir bei der Beantwortung deiner Frage zu helfen. Kommt zumindest von mir nicht mehr vor (wenn ich dran denke, ansonsten halt vielleicht schon).
Jack V. schrieb: > du verweigerst ja leider die Angabe des Systems, auf > das du dich beziehst Die Frage ist ja System-unabhängig, die Suchmaschine kannte auch passende Fundstellen bei FreeBSD. Der Beweis, dass es mal nicht egal war, ist von Ubuntu 7.1; in Debian 8 "Jessie" und Debian 9 "Stretch" war das schon auf dem heutigen Stand. Aktueller Anlass ist die Debian-Installation auf dem PC, der heute ankam; Forky auf dem Umweg über Trixie, natürlich mit sysvinit :) > Jetzt macht systemd den Job oder irgendein anderes init > – und man kann dem viel vorwerfen – aber dass es den Systemstart > ineffizient gestalten würde, gehört nicht dazu. Ich rede ja auch nicht von systemd. Immerhin habe ich gerade einen echten Nachteil von sysvinit gefunden.
Bauform B. schrieb: > Irgendwo wird der Unterschied für schwarze Magie > genutzt, aber wofür? Eventuell für Editoren. Kann eigentlich nur einen Verwaltungshintergrund haben.
Rbx schrieb: > Bauform B. schrieb: >> Irgendwo wird der Unterschied für schwarze Magie >> genutzt, aber wofür? > Eventuell für Editoren. Kann eigentlich nur einen Verwaltungshintergrund > haben. Kuckst du hier: Bauform B. schrieb: > Debian Policy §9.3.1 requires .sh scripts in runlevel S to be sourced > However, some important packages currently contain .sh scripts > that do "exit" at some point, thus killing this process. Bad!
Norbert schrieb: > Wie schnell doch zehn Jahre verfliegen… Ach, weiß doch jeder, dass sich bei diesem GNU/Linux in so kurzer Zeit kaum was verändert, und auch so antike Quellen die aktuelle Situation wiedergeben.
Eher 20 Jahre, Ubuntu 7.10. Leider ändert sich zu viel zu oft. Debian wird nicht im Supermarkt in Augenhöhe verkauft. NEU!!!1!!11 ist hier kein Verkaufsargument.
Bauform B. schrieb: > NEU!!!1!!11 ist hier > kein Verkaufsargument. Das ist es bei Ubuntu. Bei Debian es eher STABLE.
Naja … immerhin kann man sich bei Stretch / Debian 9 nicht mehr vom Root-Account ausschließen – da gibt’s ja nun einen Stapel nutzbarer Lücken. Wenn man dann noch bisschen Software aus der Zeit übers Netz erreichbar hat, kann man sich u.U. auch von überall aus einloggen.
Cartman E. schrieb: > Der Suffix .sh ist dagagen für überhaupt nichts gut. Finde ich nicht. Sieht man als Benutzer wenigstens sofort, dass es sich um ein Shell-Script handelt. Klar, für das System selber is der Suffix irrelevant. Aber wenn man mit einem System nur auf der Kommandozeile arbeitet, zum Beispiel ein Server, wo 'ls --color' was auf den meisten GNU/Linux Distributionen zwar standardmäßig aktiviert ist, aber auf Systemen wie OpenBSD nicht, dann sind die zusätzlichen Zeichen im Dateinamen schon hilfreich. Das ist aber meine persönliche Meinung.
Bauform B. schrieb: > Einzige Erklärung: Bessere Erklärung: warum nicht? Eine funktionelle Bedeutung hat es nicht, kann aber eine individuelle Konvention sein. Nicht jeder ist so schreibfaul wie du.
:
Bearbeitet durch User
Johannes schrieb: > Sieht man als Benutzer wenigstens sofort, dass es sich > um ein Shell-Script handelt. Und das Schöne dabei ist, man kann jede nur erdenkliche Datei so aussehen lassen wie man will. Doch, wie so oft, der Schein kann trügerisch sein. Erinnert fast an ein anderes OS… Wenn man skeptisch ist, dann hat man ja immer noch ›file *‹ um zu sehen was es tatsächlich beinhaltet.
Beitrag #8069337 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.