스크립트에서 변수를 사용하여 디렉터리를 만드는 데 문제가 있습니다. 전임자:
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}