Câu trả lời:
Lệnh exec thay thế hình ảnh quá trình hiện tại - chương trình thực thi hoặc chương trình - bằng một hình thức mới, được đặt tên là đối số để thực thi. Nếu $ SHELL chứa tên của một tệp thực thi, như thường lệ, thì exec sẽ quay vòng exe lên thay cho shell đang chạy.
TUY NHIÊN, đó là một hành động rất khác so với việc chỉ sử dụng "nguồn" để đọc trong tệp lệnh. Lệnh nguồn đọc tệp được đặt tên và thực thi dòng nội dung theo dòng, như thể được gõ vào dòng lệnh của shell hiện tại.
Nó gọi shell của bạn ( $SHELL
) làm shell đăng nhập.
đoạn trích từ trang Bash của người đàn ông
-l Make bash act as if it had been invoked as a login shell
(see INVOCATION below).
Tôi đề nghị đọc qua phần HÓA ĐƠN của trang man để biết thêm thông tin.
Điểm mấu chốt là nó báo cho Bash biết tập tin nào cần nguồn khi nó gọi. Hoặc $HOME/.bash_profile
( -l
) hoặc $HOME/.bashrc
( -i
).