我有以下脚本:
#!/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`