Это руководство Bash говорит:
Если номер индекса равен @ или *, на все элементы массива ссылаются.
Когда я делаю это:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i "
done
Дает: example.1 example.2 example.3
(желаемый результат).
Но когда я использую ${LIST[*]}
, я получаю example.1 2 3
вместо этого.
Почему?
Редактировать: при использовании printf @ и * фактически дают одинаковые результаты.
Мой пример был неверным, это на самом деле происходит только с
—
Арджан
echo
, а не с printf
, я только что заметил.
Возможный дубликат В чем разница между $ * и $ @?
—
Златовласка
@goldilocks Другой вопрос о
—
Стефан Шазелас
$*
и $@
. Хотя ответ будет аналогичным, и один вопрос можно считать подмножеством другого, это разные вопросы.
echo $SHELL
и вставьте вывод в ваш вопрос.