bash

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pią, 1 Paź 1999, 21:52:21 CEST


On Thu, 30 Sep 1999, Pawel Krawczyk wrote:

> Czy w pakiecie bash nie powinno przypadkiem być /bin/sh?
> 
> [root w alfa i586]# rpm -qpl bash-2.03-8.i586.rpm 
> /bin/bash
> /bin/rbash
> /etc/bashrc
> /etc/skel/C/.bash_logout
> /etc/skel/C/.bash_profile
> /etc/skel/C/.bashrc
> /etc/skel/pl/.bashrc
> /usr/bin/bashbug
> /usr/share/doc/bash-2.03
> /usr/share/doc/bash-2.03/FAQ.gz
> /usr/share/doc/bash-2.03/INTRO.gz
> /usr/share/doc/bash-2.03/NEWS.gz
> /usr/share/doc/bash-2.03/README.gz
> /usr/share/info/bash.info.gz
> /usr/share/man/man1/bash.1.gz
> /usr/share/man/man1/bashbug.1.gz
> /usr/share/man/man1/rbash.1.gz
> 
> Jedyne /bin/sh jakie znalazłem wśród pakietów na FTP jest w pdksh.

Przez przypadek wyciąłem list Grześka w którym było "Jezu. Znowu ?" więc
odpowiem na nieco wczęniejszy list o tym dlaczego nie bash jako sh
ponieważ powyższa lista plików jest przy okazji dobrą ilustracją pewnego
dotąd nie poruszanego aspektu.

Może przypomnę dotychczasowe argumenty za ksh jako sh:
- jest mniejszy,
- nadaje się o wiele lepiej jako non-interactiv shell (jako interpreter
  skryptów, bo oprócz tego, że jest mniejszy jest i szybszy), a
  bash czy cokolwiek innego może być nadal jako interactiv shell
  niezależnie od /bin/sh,
- używanie ksh jako /bin/sh powoduje, że trochę skryptów udało się
  wyczyścić z tego co nie powinno być w skryptach sh a co jest
  charakterystyczne dla basha i to po mimo widniejacego "#!/bin/sh" w
  pierwszej lini. A i udało się wyczyścić część skryptów które
  po mimo tego że są czystymi skryptami w POSIX sh to w pierwszej linijce
  miały "#!/bin/bash" (sporo skryptów z /etc/rc.d/init.d .. wystarczy
  zajrzeć do RH żeby sprawdzić jak było przed wyczyszczeniem tego
  obszaru).

Do powyższego dochodzi jeszcze to co wynika z powyższej listy czyli to, że
pakiecie z bash jest dokumentacja info. W RH, żeby obejść zapętlenie
zależności info<->bash (nie można wyrezać basha z systemu bo wszystkie
skrypty %post{un}/%pre{un} to są skrypty /bin/sh), który robi tam za
/bin/sh dokumentację info dla basha traktuje się wyjątkowo, co i tak
powoduje, że indeks info wygląda gożej niż gdyby był plikiem ze stałą
zawartością.

Tak czy inaczej .. bash "zdegradowany" został do roli do jakiej był pisany
czyli jako dobry interactiv shell.

Powód dla którego w innych dystrybucjach Linuxa nie wstawia się ksh jest
prawdopodobnie taki, że obecnie dostępne publicznie źródła pdksh
mają błąd który powoduje, ze nie nadaje sie on jako jakikolwiek
praktycznie shell po za tym żeby mógł być tak sobie. My mamy ten błąd
poprawiony i jak pokazuje już kilkumiesięczne testowanie tych poprawek
dzięki nim ksh nadaję się do pełnienia roli /bin/sh i nic nie wskazuje na
to żeby default w pakietach miałoby byc inaczej (jakoś nie widać innego,
lepszego kandydata na to miejsce).

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl