Odpowiedzi:
sourcei .są synonimami w Bash .
Dla każdego, kto chciałby sprawdzić, czy polecenia są po prostu synonimami i niczym więcej, spójrz na kod źródłowy , powiedzmy na wersję 4.3, i sprawdź plik builtins/source.def. Można przeczytać, że zarówno z wbudowanych poleceń sourcei .użyć tę samą funkcję: source_builtin.
.to tradycyjne polecenie źródłowe, odziedziczone po starożytnej powłoce Bourne'a. sourcejest tylko wbudowanym bash'em, który robi dokładnie to samo co ., prawdopodobnie dlatego, że jest bardziej czytelny ( .sam może być trudny do zauważenia za pomocą małej czcionki). Zobaczysz help sourcei help .pokaże te same informacje.
man basha następnie poszukasz, sourcezobaczysz, że source filename [arguments]jest to synonim . filename [arguments].
.jest synonimem sourcew bash, ale nie w POSIX sh, więc powinieneś użyć, .jeśli twój skrypt jest uruchamiany przez / bin / sh. Zauważ, że bash twierdzi, że działa jak POSIX sh, gdy jest wywoływany jako / bin / sh, ale akceptuje sourcebez reklamacji.
To zachowanie mnie ugryzło, skrypty przetestowane przy użyciu bash, ponieważ / bin / sh zawodzą, na przykład, gdy działają pod popiołem.
#!/bin/shże nigdy nie powinieneś zakładać, że powłoka obsługuje nic poza funkcjami POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/...