![쉘 스크립트의 변수에 공백이 포함된 단어를 전체 이름으로 할당하는 방법은 무엇입니까? [복사]](https://linux55.com/image/41471/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%EB%B3%80%EC%88%98%EC%97%90%20%EA%B3%B5%EB%B0%B1%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EC%A0%84%EC%B2%B4%20%EC%9D%B4%EB%A6%84%EC%9C%BC%EB%A1%9C%20%ED%95%A0%EB%8B%B9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
저자 이름이 포함된 목차를 만들어야 합니다. 혼자 하면 쉽습니다. 나는 간단하게 할 수 있다
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"