2014-11-05 12 views
5

Lệnh này làm gì?Lệnh này làm gì? "exec bash -l"

exec bash -l 

tôi thấy lệnh này như là một phần của một tập tin văn bản nhắc nhở là tôi đã viết một số hướng dẫn về làm thế nào để tạo một khóa ssh và sao chép một repo git, nhưng tôi đã viết nó trong một thời gian dài trước đây và tôi không thể nhớ Những gì nó làm.

Trả lời

11

exec thực hiện lệnh được chỉ định, thay thế quy trình hiện tại thay vì bắt đầu một tiến trình con mới.

Nếu bạn gõ

bash -l 

tại dấu nhắc shell, nó sẽ gọi một quá trình vỏ mới (-l làm cho nó một vỏ đăng nhập). Nếu bạn thoát khỏi quá trình shell đó, bạn sẽ quay lại quá trình shell gốc của mình.

exec bash -l 

có nghĩa là quá trình shell mới thay thế quá trình shell hiện tại của bạn. Đó có thể là một nguồn tài nguyên ít tốn kém hơn.

Lý do làm việc này có lẽ là do vỏ mới thiết lập môi trường của nó (bằng cách đọc .bashrc, .bash_profile, v.v.).

Xem tài liệu bash để biết thêm thông tin:

(Bạn sẽ có thể đọc hướng dẫn trên hệ thống của bạn bằng cách gõ info bash.)

+0

Cảm ơn! Câu trả lời chính xác – matiascelasco

1

Thao tác này sẽ thay thế hệ vỏ hiện tại của bạn bằng một bash shell mới chạy dưới dạng trình bao đăng nhập.

+2

Nó không chỉ thực hiện nó; 'bash -l' mà không có' exec' thực hiện điều đó. Xem câu trả lời của tôi. –