Estou tentando obter o conteúdo de um diretório usando o shell script.
Meu script é:
for entry in `ls $search_dir`; do
echo $entry
done
Onde $search_dir
é um caminho relativo. No entanto, $search_dir
contém muitos arquivos com espaços em branco em seus nomes. Nesse caso, esse script não é executado conforme o esperado.
Eu sei que poderia usar for entry in *
, mas isso só funcionaria para o meu diretório atual.
Sei que posso mudar para esse diretório, usar e for entry in *
depois voltar, mas minha situação particular me impede de fazer isso.
Eu tenho dois caminhos relativos $search_dir
e $work_dir
, e eu tenho que trabalhar em ambos simultaneamente, lendo-os criando / excluindo arquivos neles etc.
Então, o que eu faço agora?
PS: Eu uso bash.
for entry in "$search_dir/*"
que não funciona? Por que precisamos colocar/*
fora das aspas?