Hy vọng rằng câu hỏi này không quá chung chung. Tôi rất mới với shell scripting và tôi đến từ một nền tảng lập trình máy tính / không kịch bản. Tôi đã nhận thấy trên các tập lệnh trong công việc của tôi rằng hiếm khi các tập lệnh được viết bằng cách tạo một lớp vỏ phụ xung quanh toàn bộ tập lệnh. Trong các kịch bản tôi đang viết, khi tôi có thể bao bọc nó bằng một vỏ phụ tôi vì nó giữ cho nó không bị rối với các tập lệnh khác gọi là của tôi (Chỉ trong trường hợp). Đây có phải là một thực tế phổ biến vì một số chi phí liên quan đến phương pháp này? Tôi đang có một thời gian khó khăn để tìm thấy điều này trực tuyến.
Thí dụ:
#!/bin/bash
( #Start of subshell
echo "Some stuff here"
) #End of subshell
bash
và ví dụ C. Câu trả lời thực sự cho câu hỏi "trên cao" này thực sự là không có câu trả lời: Nếu bạn lo lắng về hiệu suất hoạt động, bạn không nên sử dụng tập lệnh shell.
somefunction() ( ... )
(chú ý các parens thay vì curlies) để xác định rằng việc somefunction
luôn tạo một subshell không phải là hiếm, tuy nhiên tôi không nghĩ rằng cần phải đặt các tập lệnh thực tế trong ngoặc đơn.
source
, hoặc thay vào đó họ đang thực thi tập lệnh của bạn?