you two errors:
the main problem is the for command, the variable $filename
contains *
and not the real file name. you should usefor filename in $(find . -name "*");do
the second one is the case:
you have to be sure about $filename
variable's value i.e. in my bash shell the filename output is
./b01.nii
./vol_01.nii
it's better to use the following syntax in the case ./b01.nii* )
I've replaced your mv
with echo
just to test the script:
for filename in $(find . -name "*"); do
case ${filename} in
./b01.nii* )
echo "$filename ${filename}/Users/dave/Desktop/test/untitled_folder_*/str" ;;
./vol_01.nii* )
echo "$filename ${filename}/Users/dave/Desktop/test/untitled_folder_*/rs" ;;
*)
echo "don't know where to put $filename";;
esac
done
my output is
sh-4.3$ bash -f main.sh
don't know where to put .
don't know where to put ./main.sh
don't know where to put ./.cg_conf
don't know where to put ./myfile_12345
don't know where to put ./myfile_17676
don't know where to put ./myfile_9898
don't know where to put ./Newfile.sh
./b01.nii ./b01.nii/Users/dave/Desktop/test/untitled_folder_*/str
./vol_01.nii ./vol_01.nii/Users/dave/Desktop/test/untitled_folder_*/rs
Regards
Claudio
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…