Debian: Shell Frage

Hi,

mir ist grad was aufgefallt, das ich mir nicht erklären kann:

Code:
mathias@x61t:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2009-08-31 09:14 /bin/sh -> bash
mathias@x61t:~$ sh
sh-3.2$ 
sh-3.2$ 
sh-3.2$ exit
exit
mathias@x61t:~$ bash
mathias@x61t:~$

/bin/sh ist also ein symlink auf /bin/bash. Wenn ich jetzt /bin/sh aufrufe bekomme ich diesen seltsamen "sh-3.2" prompt. Wenn ich aber /bin/bash direct aufrufe ist alles normal.

Wie kommt das?

cu
serow
 
Beim Aufruf von /bin/sh werden offenbar Konfigurationsdateien wie die .bashrc usw. nicht eingelesen, wodurch sich das Default-Prompt erklären lässt. Ist vermutlich mal wieder irgendwie über die alternatives o.ä. geregelt.
 
echo $0

die bash weiß, wie sie aufgerufen wurde, und versucht dann genau dieses zu emulieren :)

@bit: ich glaube da bist du im unrecht... glaube groß geschrieben ;)
 
Original von Serow
Was versucht die bash den da zu emulieren?

das müßte man im source suchen. ich denke mal, daß sie verschiedene cases hat (if $0 == "bash", if $0 == "sh") und dann die entsprechende config lädt (so wie bit schon meinte).

edit: ich weiß nur, daß es so ist. wo genau das passiert kann ich dir aber nicht sagen.
edit2: schau dir mal /etc/profile an, ich glaube das wäre sowas in der art (hab aber nur flüchtig gesucht)
 
Denkbar wäre es auf jeden Fall. Allerdings hab ich ein wenig drin rumgespielt, und abgesehn von dem anderen Prompt ist mir kein Unterschied aufgefallen was die Features angeht...

cu
serow
 
Die Unterschiede dürften grossteils auch in den Umgebungsvariablen liegen. Kannst ja einfach mal den Output von printenv vergleichen. Da ändert sich z.B. $SHLVL und $PS1.
 
Zurück
Oben