erro no comando find (cygwin)

0

Eu tenho o seguinte script:

#!/bin/bash

cd "/cygdrive/d/apple1/"
_pwd='pwd'
_find='find \"$_pwd\" -maxdepth 1 -type d | wc -l'
echo "command: find \"$_pwd\" -maxdepth 1 -type d | wc -l"
echo "find: $_find"
if [ "$_find" -gt 1 ]; then
    echo ""
fi

Esta é a saída do script

user@my-laptop ~/scripts
$ ./jltest.sh
command: find "/cygdrive/d/apple1" -maxdepth 1 -type d | wc -l
find:
./jltest.sh: line 9: [: : integer expression expected

user@my-laptop ~/scripts
$ find "/cygdrive/d/apple1" -maxdepth 1 -type d | wc -l
3

como pode ser visto no primeiro comando, estou recebendo um erro de "expressão inteira esperada". Mas eu manualmente executar o comando, eu recebo o número 3.

Alguma idéia do porquê isso está acontecendo?

Estes são os conteúdos da minha pasta "apple1".

user@my-laptop ~/scripts
$ ls -la /cygdrive/d/apple1/
total 4
drwxrwx---+ 1 user None   0 May  3 13:11 .
drwxrwx---+ 1 SYSTEM SYSTEM 0 May  3 13:11 ..
drwxrwx---+ 1 user None   0 May  3 13:11 apple11
drwxrwx---+ 1 user None   0 May  3 13:11 apple12

ps. Não tenho certeza se isso é adequado para essa seção do stackexchange, já que o cygwin não é realmente nix. Mas espero receber mais respostas aqui. Além disso, eu tentei o módulo do Windows 10 "Linux para Windows" e é muito cedo beta.

    
por mrjayviper 04.05.2017 / 04:41

1 resposta

1

Esta é a linha ofensiva. Você precisa escapar aspas ao imprimir, mas não ao executar.

_find='find "$_pwd" -maxdepth 1 -type d | wc -l'
    
por 04.05.2017 / 05:22