: : : 아래 스크립트에서 case구문이 제대로 동작을 안하는데 뭐가 잘못 된건지
: : : 답변 좀 부탁 합니다.
: : : 두번째 질문에 어떤 대답을 하던 간에 case에서 디폴트로 지정된 세번째의
: : : 경우가 실행이 되는데 이유를 모르겠네요. 고수님들의 한수 지도 부탁 합니다.
: : :
: : : #Main routine
: : :
: : : clear
: : : echo
: : : echo "Flle and directory mode changing program"
: : : echo "Please, enter the directory to start:"
: : : read start_dir
: : : echo "Do you want to do for all subdirectories too?, (y/n)"
: : : read ANSWER
: : : echo "Mode for directories ?"
: : : read DIR_MODE
: : : echo "Mode for files ?"
: : : read FILE_MODE
: : :
: : : count=0
: : : dir_flag=0
: : : file_name=""
: : : DIR_0=''
: : : DDIR_0=''
: : :
: : : echo "Start DIR is $start_dir"
: : :
: : : cd $start_dir
: : :
: : : case "$ANSWER" in
: : : "[yY]" | "[Yy][Ee][Ss]" )
: : : until [ "$DDIR_0" ]
: : : do
: : : file_change
: : : if [ "$dir_flag" -eq 1 ];then
: : : dir_move_fwd
: : : else
: : : dir_move_back
: : : fi
: : : done
: : : ;;
: : :
: : : "[nN]*" )
: : : file_change
: : : ;;
: : : * )
: : : echo "Sorry, answer not recognised"
: : : echo "Please answer yes or no"
: : : exit 1
: : : ;;
: : : esac
: : :
: : : exit 0
: : :
: :
: ++++++++++++++++++++
#
#
#
" "를 없앤후에 실행해보세요.위의 경우는 [yY]와 같이 입력해야합니다.
case 문 내의 ')'에 " "를 쓸경우 shell이 문자를 해석을 할때 일반 문자로
인식하므로 "[nN]"*의 경우 원래는 n or N(혹은 n|N) 이지만,
[nN]이라고 인식합니다.