쉘 스크립트의 변수에 공백이 포함된 단어를 전체 이름으로 할당하는 방법은 무엇입니까? [복사]

쉘 스크립트의 변수에 공백이 포함된 단어를 전체 이름으로 할당하는 방법은 무엇입니까? [복사]

저자 이름이 포함된 목차를 만들어야 합니다. 혼자 하면 쉽습니다. 나는 간단하게 할 수 있다

mkdir "Mario Luis Garcia"

그러면 "Mario Luis Garcia"라는 디렉토리가 생성됩니다.

그러나 쉘 스크립트를 사용하여 대규모 작업을 수행하려고 하면 실패합니다.

for i in "Mario Luis Garcia" "etc.";
    do 
        mkdir $i
    done;

이렇게 하면 2개가 아닌 4개의 별도 디렉터리가 생성됩니다. 인용된 텍스트를 둘러싸기 위해 {}를 사용해 보았습니다 . ()작동하지 않습니다.

어떻게 하나요?

답변1

변수 확장을 큰따옴표로 인용해야 합니다.

mkdir "$i"

(작은따옴표를 사용하면 '$i'이름이 디렉터리로 생성됩니다 $i)

이름이 로 시작할 수 있는 경우 마지막 옵션 매개변수 뒤에 추가하여 다른 모든 매개변수가 옵션이 아님을 나타내야 -합니다 --. 즉, 이 경우 해당 매개변수는 디렉터리 이름입니다.

mkdir -- "$i"

또는 다음과 같은 옵션 -v(verbose)을 사용하십시오.

mkdir -v -- "$i"

관련 정보