Tôi đang đọc "Hướng dẫn Bash dành cho người mới bắt đầu". Nó nói:
Nếu ký tự đầu tiên của
PARAMETER
là một dấu chấm than, Bash sử dụng giá trị của biến hình thành từ phần còn lại củaPARAMETER
như tên của biến; biến này sau đó được mở rộng và giá trị đó được sử dụng trong phần còn lại của thay thế, thay vì giá trị của chính sốPARAMETER
. Điều này được gọi là mở rộng gián tiếp.
Các ví dụ đưa ra là:
franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH
Tôi hoàn toàn không hiểu ở đây:
giá trị của biến hình thành từ phần còn lại của
PARAMETER
Khi PARAMETER
chỉ là !N*
, sau đó
phần còn lại của
PARAMETER
chỉ N*
là. Làm thế nào điều này có thể tạo thành một biến? Bash đã tìm kiếm tất cả các lệnh có thể có?
các biến khác phù hợp với * cũng được đặt thành "tạm biệt"? – Anthony
@Anthony Tôi đã thử nó và nếu '$ {! My *}' mở rộng thành myA, myB, myA được xuất với giá trị hiện tại của nó và myB được đặt thành "tạm biệt" và được xuất. Không phải rất hữu ích. – GKFX