所以我给任务一个文件夹名称的文件列表,找到那些真实文件夹的位置并做一些处理。我试过的是:
for fprj in $(cat $failedprojects_file)
do
pwd
echo $fprj
echo "/cygdrive/c/cygwin/bin/find.exe ./ -maxdepth 3 -type d -iname $fprj"
echo "$(/cygdrive/c/cygwin/bin/find.exe ./ -maxdepth 3 -type d -iname $fprj)"
project_dir=$(/cygdrive/c/cygwin/bin/find.exe ./ -maxdepth 3 -type d -iname $fprj)
echo $project_dir
#do some processing
done
结果非常糟糕,并且find命令似乎在循环内不起作用。虽然如果我在cygwin终端中单独执行它,它的工作正常。
执行结果:
echo "$(/cygdrive/c/cygwin/bin/find.exe ./ -maxdepth 3 -type d -iname $fprj)"
project_dir=$(/cygdrive/c/cygwin/bin/find.exe ./ -maxdepth 3 -type d -iname $fprj)
echo $project_dir
总是“”。
请不要建议任何workarround解决方案(例如,不要使用bash,cygwin,find或for循环)。