csh 세트가 작은따옴표 안의 중괄호를 제거하지 못하도록 방지하는 방법은 무엇입니까?

csh 세트가 작은따옴표 안의 중괄호를 제거하지 못하도록 방지하는 방법은 무엇입니까?

아래 코드에서는 set을 사용할 때 작은따옴표 내에서 {}가 제거되지만 별칭을 사용할 때는 제거되지 않는 것으로 나타납니다. 세트가 교정기 제거를 중지하는 방법은 무엇입니까?

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo $string

스크립트를 실행할 때 다음이 표시될 것으로 예상합니다.

echo ${ENVVAR}_middle_end

하지만 내가 얻는 것은 다음과 같습니다.

echo $ENVVAR_middle_end

csh가 중괄호를 제거하는 것을 어떻게 중지합니까?

답변1

문자열을 에코할 때 중괄호는 따옴표 안에 있지 않으므로 마지막 중괄호에 변수 확장을 인용하십시오 echo.

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo "$string"

결과 csh:

echo ${ENVVAR}_middle_end

관련 정보