Pergunta

Ubuntu$ ls -1

arquivo1 arquivo2

Ubuntu$ ls -1 | xargs -I{} echo -n {}{}{}

arquivo1arquivo1arquivo1arquivo2arquivo2arquivo2

Por que não obtenho o resultado nesta ordem?:arquivo1arquivo2arquivo1arquivo2arquivo1fil2

Foi útil?

Solução

Porque xargs executa o comando (echo) para cada palavra em sua entrada.E claro {} é sempre o mesmo.Mesmo se você repetir muitas vezes.

Você pode fazer o que quiser usando for:

ls=$(ls -1)
for i in {1..3}
do
  echo $ls
done

Exemplo de uso:

$ mkdir d ; cd d
<d>$ touch file1 file2 file3
<d>$ ls=$(ls -1)
<d>$ for i in {1..3}
> do
>   echo $ls
> done
file1 file2 file3
file1 file2 file3
file1 file2 file3
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top