Hướng dẫn Bash này nói:
Nếu số chỉ mục là @ hoặc *, tất cả các thành viên của một mảng được tham chiếu.
Khi tôi làm điều này:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
Cho: example.1 example.2 example.3
(kết quả mong muốn).
Nhưng khi tôi sử dụng ${LIST[*]}
, tôi nhận được example.1 2 3
thay thế.
Tại sao?
Chỉnh sửa: khi sử dụng printf, @ và * thực sự cho kết quả tương tự.
Ví dụ của tôi là sai, điều này thực sự chỉ xảy ra với
—
arjan
echo
, không phải với printf
, tôi chỉ nhận thấy.
trùng lặp có thể có của sự khác biệt giữa $ * và $ @ là gì?
—
goldilocks
@goldilocks Câu hỏi khác là về
—
Stéphane Chazelas
$*
và $@
. Mặc dù, câu trả lời sẽ tương tự nhau và một câu hỏi có thể được coi là một tập hợp con khác, chúng là những câu hỏi khác nhau.
echo $SHELL
và dán đầu ra cho câu hỏi của bạn.