Isso ilustra por que você NUNCA deve confiar em analisar a saída do comando ls
para iterar sobre o conteúdo do diretório - use um simples glob de shell em vez de, por exemplo. para corresponder a qualquer nome de arquivo terminado em um dígito
for f in $mydir/*[0-9]
do
if [ -e $mydir/ ]
.
.
done
A respeito de como ele está produzindo a linha cp -i driver.sh 32/
, você pode ver que quando você digita dígitos na saída de ls -la
, ele corresponde à linha total: 32K
, bem como aos nomes de diretório desejados.