Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ShadowOne« (12.02.2004, 22:20)
Zitat
neee, des wird nichts!
Jede Shell hat eine eigene Syntax (Sprache), die kann man nicht mal kurz wie ein paar stinkende Socken auswechseln ...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo23X0« (13.02.2004, 10:14)
Zitat
Original von kernelpanic
Ein Script, das einen /bin/sh She-bang hat und nur auf der Bash laeuft ist eine typische Linux Erfindung...
Zitat
If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well.
Zitat
Original von kernelpanic
> Nur doof, dass unter SUSE soweit ich weiß die Datei /bin/sh ein Verweis auf die /bin/bash ist.
AFAIK ist das bei allen Linuxen so.
> Das ist dann uncool, oder?
Nicht nur das, das ist totaler Muell.
Ein Script, das einen /bin/sh She-bang hat und nur auf der Bash laeuft ist eine typische Linux Erfindung...
Gruss
kp
Zitat
Original von Chucky the Devil
Halt Du mal lieber den Ball flach. Zitat D. Nuhr: "Wenn man keine Ahnung hat.."
> Mal schön den Ball flach halten, welche Shell statt der bash soll denn
> sonst /bin/sh sein?
>
Eine Bourne-Shell - kompatible Shell (SH, ASH, ..) bzw. ein Symlink
gegen eine solche Shell. Es sind *nur* Linux - Distrubtionen die dort
einen Symlink gegen die Bash haben; bei keinem (kommerziellen) UNIX ist
die Bash Bestandteil des Systems (weder bei SunOS, HP-UX, AIX; IRIX;
OSF, ..), sondern lediglich als Zusatzpaket verfuegbar.
Zitat
> Es gibt grundsätzlich zwei Shell-Familien "Bourne-Shell" und "C-Shell",
> die wirklich vollkommen unterschiedlich sind.
>
Das ist Schwachsinn. Es gibt exakt eine Bourne-Shell; der Rest (CSH;
Bash, KSH, ..) sind abgeleitete Varianten der Bourne-Shell und die CSH
ist ein Haufen Scheisse, weil sie nicht aufwaertskompatibel zur
Bourne-Shell ist.
Zitat
> Die "Bourne-Shell" ist die, die mit /bin/sh aufgerufen wird. Ich behaupte, es
> gibt gar keine Original-Bourne Shells mehr.
>
Die Bourne-Shell ist die Standard-Shell von UNIX-System V; das war sie, das
ist sie und das wird wahrscheinlich auch immer bleiben. SunOS z. B.
faehrt ohne der Bourne-Shell als /bin/sh gar nicht erst hoch, weil
*alle* INIT-Scripte diese Shell parsen. Gleiches gilt fuer AIX und
Ultrix. Ferner ist auch die originale Bourne-Shell Bestandteil von
4.4BSD.
Zitat
> Sowohl bei GNU als auch bei den kommerziellen Unixen ist diese weiter
> entwickelt worden.
>
Nein. Bourne-Shell != Bash/KSH/CSH
Zitat
Die Bourne-Shell kann z. B. "$()", "print" und "$[]" im Gegensatz zur
Bash nicht verarbeiten, weil es im IEEE Std 1003.1 nicht spezifiziert
ist. So enthaelt auch fast jedes rc/INIT/.. - Script bei den meisten
Distrubtionen Arithmetische Expandierung und wenn man solche Script mit
der Bourne-Shell abarbeiten will, ist man im Arsch.
Zitat
> Es entstanden bash und Korn-Shell; diese können alles was die Bourne-Shell
> kann plus eigener Erweiterungen.
>
Ein Satz von folgeloser Richtigkeit. Du bist also doch in der Lage
/DESCRIPTION der Manpages besagter Shells zu lesen.
Zitat
> In der Regel haben diese Nachfolger das Feature, dass sie beim Aufruf
> prüfen, unter welchem Namen sie aufgerufen wurden, und wenn das /bin/sh ist,
> dann werden die Erweiterungen ausgeschaltet.
>
Der Kernel liefert, wenn er Shellscripte ausfuehren soll, die kein
"#!/path/to/interpreter" am Anfang stehen haben, ENOEXEC als
Fehlermeldung zurueck, und es ist Sache der Shell, dann noch etwas
vernuenftiges zu machen. tcsh, pdksh und tclsh machen es so dass sie
"/bin/sh script" starten.
Die Bash arbeitet da anders - sie fuehrt das Script (in dem schon
geforkten neuen Prozess) selbst aus (und sollte der Sinn der Uebung der
gewesen sein zu pruefen ob das Script fehlerfrei nicht nur unter Bash,
sondern auch unter einer "primitiveren" Shell laufen kann, dann hat man
Pech). rc (die Plan9-Shell) fuehrt Scripte ohne "#!" gar nicht erst aus
und bei csh ist es noch lustiger. Wenn das Script mit ":" beginnt, wird
es an /bin/sh weitergegeben, ansonsten selber ausgefuehrt.
Zitat
> So ist das auch bei der bash, wie sich in der Doku leicht nachlesen
> lässt.
>
Dann zitiere doch bitte mal den entsprechenden Abschnitt (mit Quellenangabe).
Quellcode |
|
1 2 3 4 5 |
#v+ $ ls -l /bin/sh && uname -a -r-xr-xr-x 4 bin bin 240326 Dec 02 17:27 /bin/sh AIX nntp-host 2 5 000F218D4C00 #v- |
Zitat
Original von rantanplan
Könnt ihr auch programmieren?