Você tem 2 erros:
- Sintaxe de loop incorreta,
do
deve estar na segunda linha - sintaxe de substituição inválida, sem sinal de dólar antes de
i
necessário
Tente isto:
#!/bin/bash
for i in $(cat myfile.csv)
do
temp="${i%\"}"
temp="${temp#\"}"
cp foldername/$temp foldername/subfoldername
done
mas, ele falhará se você tiver espaços em nomes de arquivos. O script abaixo funcionará também com espaços:
#!/bin/bash
while read i;
do
temp="${i%\"}"
temp="${temp#\"}"
cp "foldername/$temp" "foldername/subfoldername"
done < myfile.csv