Você não pode com bash
. A especificação POSIX do utilitário printf
também não a suporta. Você teria que reordenar os argumentos manualmente.
Os integrantes printf
(ou print -f
) de ksh93
e zsh
oferecem suporte a eles:
$ printf '%2$s%1$s\n' a b
ba
O GNU awk
ou perl
também é compatível, portanto, se você tiver algum desses instalados, em bash
, você poderá redefinir printf
como uma função como:
printf() { zsh -c 'printf "$@"' printf "$@"; }