bash scripting: muitos argumentos em if

0

Eu tenho uma condição if dentro de um loop for sobre pastas dentro de um determinado diretório, verificando se existe um arquivo específico dentro de cada pasta e pulando a pasta se não existir. A condição if me dá um erro de muitos argumentos:

line 2: [: too many arguments

Esta é a minha sintaxe:

for folders in path; do
    if [ ! -e /sub/folder/file* ]; then
        continue
    fi
    #do-stuff-to-file
done

Uma verificação de loop semelhante para um subdiretório com ! -d funciona bem ...

    
por Henry Brice 30.12.2015 / 10:48

1 resposta

0

O curinga é o problema. Suponha que você tenha fileA e fileB, ele será expandido para:

if [ ! -e /sub/folder/fileA /sub/folder/fileB ]; then

que é sintaticamente inválido.

    
por 30.12.2015 / 10:58

Tags