Có cách nào để tạo các biến bash và gán giá trị cho chúng thông qua một vòng lặp không?
Một cái gì đó dọc theo dòng:
#!/bin/bash
c=0
for file in $( ls ); do
var"$c"="$file";
let c=$c+1;
done
EDIT: Cảm ơn bạn @Costas và @mdpc vì đã chỉ ra đây sẽ là một sự thay thế kém cho danh sách; Câu hỏi chỉ là lý thuyết.
1
LƯU Ý: Lưu ý rằng thiết lập của bạn sẽ thay đổi / sửa đổi / chỉ định các biến trong quy trình hiện tại và KHÔNG phải là quy trình cha nếu bạn thực hiện điều này như một lệnh. Bạn có thể nguồn tệp bằng cách sử dụng '.' lệnh (EX :. new_vars) để thực hiện điều này trong quy trình hiện tại.
—
mdpc
Ok, nhưng ở trên không thực sự hoạt động;
—
toxefa
var"$c"
phá vỡ nó Câu trả lời của @Costas giải thích cách gán nhiều giá trị cho một biến danh sách - Tôi chỉ hỏi về mặt lý thuyết liệu các biến có thực sự được tạo bằng một vòng lặp hay không.
Hmmm ... tại sao quá phức tạp, chỉ cần sử dụng một biến mới sẽ tạo ra nó mà không có bất kỳ sự phô trương nào.
—
mdpc