LINUX.ORG.RU

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

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

Так работает, но я не понимаю абсолютно, как printf понимает, где заканчивается одно %s и начинается другое!

declare -a arr=('a b c' 'd e f' 'g h i')
printf -v outLine '%s:::' "${arr[@]}"
echo "$outLine"

Мне всегда казалось, что ${arr[@]} должен раскрываться/интерполироваться ДО того, как он станет аргументом printf'а, а магия здесь, наверное, в том, что printf - это не внешняя команда.

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

Так работает, но я не понимаю абсолютно, как printf понимает, где заканчивается одно %s и начинается другое!

declare -a arr=('a b c' 'd e f' 'g h i')
printf -v outLine '%s:::' "${arr[@]}"
echo "$outLine"

Мне всегда казалось, что ${arr[@]} должен раскрываться ДО того, как он станет аргументов printf'а, а магия здесь, наверное, в том, что printf - это не внешняя команда.