查找命令错误(cygwin)

查找命令错误(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 for Windows”,它还是非常早期的测试版。

答案1

这是有问题的线。打印时需要转义引号,但执行时不需要。

_find=`find "$_pwd" -maxdepth 1 -type d | wc -l`

相关内容