Symlink do bash uruchamia inną powłokę

2

W następnej sesji bash mam / bin / sh dowiązanie symboliczne do / bin / bash. Jednak po uruchomieniu / bin / sh wynik nie jest taki sam, jak uruchomienie /bin/bash ... jakiś pomysł, co się tam dzieje?

benno@benno-laptop:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 2009-08-28 19:56 /bin/sh -> /bin/bash
benno@benno-laptop:~$ /bin/sh
sh-3.2$ exit
exit
benno@benno-laptop:~$ /bin/bash
benno@benno-laptop:~$ exit
exit
benno@benno-laptop:~$
Benno
źródło

Odpowiedzi:

6

Od tutaj : „Jeśli bash jest wywoływany pod nazwą sh, próbuje naśladować zachowanie startowe historycznych wersji sh tak ściśle, jak to możliwe, przy zgodnym ze standardem POSIX, jak również.”

księżycowy cień
źródło
1
Ten rodzaj polimorfizmu nazwy inwokacji jest rzadką, ale cenioną częścią wiedzy o programowaniu w Uniksie. Gdy przejdziesz dalej niż zwykłe używanie, powinieneś być z dala od niego. Innym częstym miejscem, żeby go zobaczyć jest w grep, egrep, fgreprodziny.
dmckee,
1
Busybox ( busybox.net ) przyjmuje ten paradygmat tak daleko, jak to możliwe :)
moonshadow