Script UNIX não está lendo as pastas com espaços [closed]

1

Eu tenho um script UNIX que deve varrer todas as pastas e retornar os arquivos mais antigos do que a quantidade específica de tempo. Eu dei a lógica como abaixo, mas o script não é capaz de ler as pastas com espaços. Alguém pode nos ajudar a fazer isso funcionar?

dir = '/ a / b / test';

O script

está varrendo todos os subdiretórios após o teste, mas não consegue varrer os diretórios com espaços, por exemplo, 'script de teste'.

    
por Karthik 16.06.2015 / 22:10

1 resposta

2

Então você tem algo assim:

$ foo='my dir'
$ ls $foo
my: no file or directory found
dir: no file or directory found

Em vez disso, tente isto:

$ foo='my dir'
$ ls "$foo"

Ou melhor ainda:

$ ls "${foo}"

Ambos os métodos protegem o caractere [: space:] de ser interpretado pelo shell e garante que ele seja lido como um caractere [: space:], não o ponto de interrupção de um comando.

É um bom hábito entrar em contato ao escrever scripts de shell!

    
por 16.06.2015 / 22:23

Tags