У меня есть следующий сценарий:
#!/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", и это очень ранняя бета-версия.
Это линия нарушения. Вам нужно экранировать кавычки при печати, но не при выполнении.
_find=`find "$_pwd" -maxdepth 1 -type d | wc -l`