스크립트에서 변수 이름을 사용하여 빈 파일을 만듭니다.

스크립트에서 변수 이름을 사용하여 빈 파일을 만듭니다.

쉘 스크립트를 사용하여 빈 파일을 만들어야 합니다. 파일 이름은 특정 패턴(예:)과 일치하는 디렉터리의 모든 파일을 확인하여 결정되며 새 파일이 다음과 같이 보이 TEST.*도록 합니다 ._ENDTEST.2011_END$DIR

for file in $DIR/TEST.*
do
    touch $file_END  
done

이렇게 하면 오류가 발생합니다. 나는 또한 touch $file_END다음으로 교체를 시도했습니다.

filename=$file_END  
touch $filename  

하지만 행운은 없습니다. 어떻게 해야 합니까?

답변1

구문은 다음과 같습니다.

filename="${file}_END"

또는 귀하의 코드에서

touch "${file}_END"

"공백이나 와일드카드 가 없으면 $file따옴표는 필요하지 않습니다 .

답변2

명령 해석기는 사용자가 $file_END(file_END라는 변수의 값)를 의미했다고 생각합니다. 인용을 통해 이 문제를 해결할 수 있습니다. 구문은 다음과 같습니다.

filename="$file""_END"

또는

filename="$file"_END

심지어

filename=$file"_END"

명확성을 위해 첫 번째 것을 선호하지만!

관련 정보