Chciałem wiedzieć, czy skrypty napisane dla dash, ash i sh są w 100% kompatybilne?
Czy są jakieś dodatkowe funkcje myślnika, jesionu lub zmiany składni?
Z tego, co słyszałem, popiół jest bezpośrednim potomkiem sh.
shell
shell-script
compatibility
dash
ash
użytkownik1115057
źródło
źródło
man ash
checkbashisms
do przetestowania, czy twój skrypt jest zgodny z POSIX.Odpowiedzi:
Krótka odpowiedź brzmi: nie, nie są w 100% kompatybilne.
Ale większość pocisków jest dość zbliżona do podstawowej, więc rzadko wpadałbyś na niespójności. W rzeczywistości większość powłok różni się niewiele dodaną składnią, ale dodatkowymi funkcjami, takimi jak uzupełnianie tabulatorami i podobne.
Jest też
dash
swego rodzaju potomkiemash
- lub portu od BSD do Linuksa, a ściślej. I wszyscy powinni być potomkami lub różnymi implementacjamish
. W rzeczywistości,sh
jest w większości systemów prostu dowiązaniem dobash
,dash
lub coś innego. Liczy się zgodność z POSIX - a kiedy piszesz skrypty zgodnie ze standardami, nie napotkasz problemów.Różnica między tymi powłokami polega na optymalizacji i wydajności. Są mniej bogate w funkcje
bash
, ale są w pełni uzasadnionymi powłokami. Bash jest bogaty w funkcje do pracy interaktywnej, ale na przykład zużywa więcej pamięci.źródło
Należy wspomnieć, że w niektórych systemach, w szczególności Debian, / bin / ash nie jest dostępny:
źródło