스크립트 - 공백이 있는 폴더

스크립트 - 공백이 있는 폴더

공백을 처리할 수 있을 만큼 강력한 스크립트를 작성하려고 합니다.

현재 for 루프에 있지만 문제는 이름에 공백이 있는 폴더입니다.

ASOURCE="Home Photos 2012 camcorder" #example filename
if [ -d "$(echo $ASOURCE)" ] # If directory exists
then
#command
else
echo "File does not exist: " $1 #Error
echo "DIR :" $(echo $ASOURCE | sed 's/\ /\\ /g')
fi

확인에 실패했습니다. 사전에 공간에서 탈출을 시도했지만 소용이 없었습니다.

답변1

당신은해야언제나(*) 특히 임의의 사용자 입력이 포함된 경우 변수를 참조하세요.

이 경우 다음 스크립트를 사용하여 작성하면, 이중 괄호를 사용하면 따옴표가 필요하지 않습니다(bash는 이에 대해 똑똑합니다). 그리고 printf "%q"bash를 사용하여 이스케이프가 필요한 항목을 이스케이프 처리합니다.

ASOURCE="Home Photos 2012 camcorder" #example filename
if [[ -d $ASOURCE ]]; then
    # directory exists
    :
else
    # Note how these vars are quoted:
    echo "File does not exist:  $1"
    printf "DIR : %q\n" "$ASOURCE"
fi

(*) 당신이 모르는 한정확히참조하고 싶지 않을 때.

관련 정보