LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

а какой между ними разделитель, если, например, echo «$@»?

Разделитель между аргументами вызова программы, пусть и встроенной — это внутренние проблемы интерпретатора и системы. Так для Unix-овго exec — это \0.

ещё не подскажешь, как одной командой printf сделать такой же вывод, как echo «$@» или echo «${ARRAY[@]}»?

Формат вызова у echo и printf — разный. echo простенькая и не очень удобная в большинстве случаев программа, печатающая все аргументы через пробел. Ну так оно по другому, в отличии от printf не умеет, то есть если вам вместо пробела надо что-то другое, то будет облом. Впрочем, если вас устроит лишний пробел в конце, то можно и через printf:

printf "%s " "$@" $'\n'
Но зачем, если для этого простого случая специально придумано «$*»?

Исправление vodz, :

а какой между ними разделитель, если, например, echo «$@»?

Разделитель между аргументами вызова программы, пусть и встроенной — это внутренние проблемы интерпретатора и системы. Так для Unix-овго exec — это \0.

ещё не подскажешь, как одной командой printf сделать такой же вывод, как echo «$@» или echo «${ARRAY[@]}»?

Формат вызова у echo и printf — разный. echo простенькая и не очень удобная в большинстве случаев программа, печатающая все аргументы через пробел. Ну так оно по другому, в отличии от printf не умеет, то есть если вам вместо пробела надо что-то другое, то будет облом. Впрочем, если вас устроит лишний пробел в конце, то можно и через printf:

printf "%s " "$@" $'\n'

Исходная версия vodz, :

а какой между ними разделитель, если, например, echo «$@»?

Разделитель между аргументами вызова программы, пусть и встроенной — это внутренние проблемы интерпретатора и системы. Так для Unix-овго exec — это \0.

ещё не подскажешь, как одной командой printf сделать такой же вывод, как echo «$@» или echo «${ARRAY[@]}»?

Формат вызова у echo и printf — разный. echo простенькая и не очень удобная в большинстве случаев программа, печатающая все аргументы через пробел. Ну так оно по другому, в отличии от printf не умеет, то есть если вам вместо пробела надо что-то другое, то будет облом. Впрочем, если вас устроит лишний пробел в конце, то можно и через printf:

printf "%s" "$@" $'\n'