변수를 사용하는 mkdir

변수를 사용하는 mkdir

스크립트에서 변수를 사용하여 디렉터리를 만드는 데 문제가 있습니다. 전임자:

read user
mkdir $user{01..10}

흥미롭게도 다음과 같이 작동합니다.

read user
mkdir {01..10}$user

이 문제를 해결할 수 있는 방법이 있나요? 아니면 뭔가 빠졌나요?

감사해요

답변1

중괄호 확장은 에서 변수 확장 전에 발생합니다 bash. 이는 명령이

mkdir $user{01..10}

먼저 다음으로 확장하세요.

mkdir $user01 $user02 (etc.)

이러한 변수는 존재하지 않으므로 최종 명령 실행은 다음과 같습니다.

mkdir

피연산자가 없습니다.

이 문제를 해결하려면 다음을 사용하십시오.

mkdir "$user"{01..10}

답변2

적절한 변수 확장 및 환경 변수 구문 분석을 위해서는 괄호를 사용해야 합니다.

read user
mkdir ${user}{01..10}

큰따옴표는 가장 우아한 방법은 아니지만 여전히 작동합니다.

read user
mkdir "$user"{01..10}

관련 정보