Bash
查找命令中的錯誤(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”,它是非常早期的測試版。
這是違規行。您需要在列印時轉義引號,但在執行時不需要。
_find=`find "$_pwd" -maxdepth 1 -type d | wc -l`