Tôi cố gắng khai báo biến số x
với tất cả các ký tự từ a..x
. Trên dòng lệnh (bash), thay thế a..x
hoạt động với bất kỳ dấu tích nào.Cách sử dụng thay thế Bash trong khai báo biến
$ echo {a..x}
a b c d e f g h i j k l m n o p q r s t u v w x
Nhưng gán nó cho biến qua x={a..x}
làm kết quả trong chuỗi {a..x}
. Chỉ x=$(echo {a..x})
hoạt động.
Câu hỏi đặt ra là: Đây có phải là cách phân công phù hợp hay tôi phải làm những việc khác?
Mục đích chính là để gán chuỗi thành một mảng, ví dụ:
disks=($(echo {a..x}))
mở rộng cú đúp thất bại trên phân công bởi vì nó pro duces một danh sách và biến chỉ chấp nhận một giá trị vô hướng; bash là "thông minh" theo nghĩa này bởi vì nó biết nó không thể gán một danh sách cho biến để nó không mở rộng tất cả, đó là lý do tương tự bạn có thể gán các biến chứa dấu cách mà không trích dẫn chúng, vì nó là một giá trị vô hướng. không áp dụng tách từ trên nội dung ngay cả khi không được bỏ phiếu. tuy nhiên mảng này chấp nhận một danh sách và trong trường hợp đó, cả việc mở rộng cú đúp và tách từ sẽ xảy ra. –