Se tudo o que você deseja fazer é obter a listagem de arquivos no diretório atual e, em seguida, anexar uma string a cada um desses nomes:
set -- *
printf '%s-somestring\n' "$@"
ou, usando uma matriz bash
,
names=( * )
printf '%s-somestring\n' "${names[@]}"
Usando uma matriz, a matriz de parâmetros posicionais (o primeiro exemplo acima, que funcionará em todas as shells POSIX), ou uma matriz bash
, é a maneira mais segura de trabalhar com nomes de arquivos. Se você estiver convertendo os nomes de arquivos em algum tipo de string delimitada, você terá problemas quando tiver nomes de arquivos contendo qualquer caractere que tenha escolhido para delimitar a string.
Para apenas acrescentar algo ao final da saída , faça isso em um echo
:
separado
# code that output something
# then,
echo 'additional data'
Ou, modificando meus exemplos acima:
set -- * 'additional data'
printf '%s\n' "$@"
e
names=( * 'additional data' )
printf '%s\n' "${names[@]}"
Ou ...
set -- *
set -- "$@" 'additional data'
printf '%s\n' "$@"
e
names=( * )
names+=( 'additional data' )
printf '%s\n' "${names[@]}"