Estou tentando criar um script bash para executar o comando ffmpeg em todos os arquivos em um diretório com nomes de arquivos que contenham espaços. Este é o script com o qual comecei para fazer um arquivo individual que funcione corretamente. Eu uso tab
para preencher o argumento filename que inclui um caractere de escape para todos os espaços:
#!/bin/bash
input="./"$1
output="/xfer/transfer/temp/"$1
ffmpeg -i "${input}" -c:v copy -c:a libfdk_aac -b:a 160k "${output}"
O próximo passo é executar o comando ffmpeg em todos os arquivos de um diretório. Digamos que o diretório fique assim com o ls
comando:
'Name of First File.mkv'
'Name of Second File.mkv'
Aqui está meu código de teste:
#!/bin/bash
files=$(ls *)
for input in ${files}
do
echo $input
done
Meu problema é que a saída fica assim:
Name
of
First
File.mkv
Name
Of
Second
File.mkv
Adicionar a -b
ao comando ls simplesmente adiciona uma barra invertida ao final de cada linha. Preciso de ajuda para fazer $input
parecer Name of First File.mkv
, etc.