ошибка в команде find (cygwin)

У меня есть следующий сценарий:

#!/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

Это результат сценария

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

, как видно из первой команды, я получаю ошибку" Ожидается целочисленное выражение ". Но я вручную запустите команду, я получаю номер 3.

Есть идеи, почему это происходит?

Это содержимое моей папки "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

пс. не уверен, подходит ли это для этого раздела stackexchange поскольку cygwin на самом деле не nix. Но я надеюсь, что здесь я получу больше ответов. Кроме того, я пробовал модуль Windows 10 "Linux для Windows", и это очень ранняя бета-версия.

0
04.05.2017, 05:41
1 ответ

Это линия нарушения. Вам нужно экранировать кавычки при печати, но не при выполнении.

_find=`find "$_pwd" -maxdepth 1 -type d | wc -l`
1
28.01.2020, 02:46

Теги

Похожие вопросы