Theo tôi biết có hai cách để tạo các biến cục bộ trong hàm bash: tạo một subshell hoặc khai báo mọi biến cục bộ.Biến cục bộ trong bash: local vs subshell
Ví dụ:
# using local
function foo
{
local count
for count in $(seq 10)
do
echo $count
done
}
hoặc
# using subshell
function foo
{
(
for count in $(seq 10)
do
echo $count
done
)
}
Obvisously phiên bản sử dụng subshell được đơn giản hơn để viết bởi vì bạn không cần phải quan tâm đến tuyên bố tất cả các biến địa phương (chưa kể đến (môi trường) các biến được tạo/xuất bởi các công cụ như getopts). Nhưng tôi có thể tưởng tượng rằng việc tạo ra một subshell có một chi phí.
Vậy cách tiếp cận tốt hơn là gì? Ưu/khuyết điểm là gì?
, cũng chạy 'lệnh time' hơn 1000 kiểm tra và tìm thấy trên đầu, tôi nghĩ rằng nó nhỏ để không tồn tại. – Anders