# 변수를 사용한 달러 기호 확장

스크립트 또는 표현식 내의 텍스트 대체에 변수를 사용하는 경우 다음과 같은 구문이 사용됩니다.

$(variablename)

$(variablename) 은 변수의 값으로 확장됩니다. variablename이 존재하지 않을 경우 확장 결과는 빈 문자열이 됩니다.

숫자 변수 확장의 경우 다음과 같은 구문이 사용됩니다.

$(#variablename)

항상 변수의 숫자 값의 유효한 소수점 표현을 산출하며, 지수 표기도 가능할 수 있습니다(매우 크거나 작은 수의 경우). variablename이 존재하지 않거나 숫자 값을 포함하지 않는다면 0으로 확장됩니다.

`SET 
 DecimalSep=',';` `LET 
 X = 7/2;`

달러 기호 확장 $(X)는 3,5로 확장되고 $(#X)는 3.5로 확장됩니다.

`Set Mypath=C:\MyDocs\Files\;` ` ...  ` `LOAD * from $(MyPath)abc.csv;`

데이터는 C:\MyDocs\Files\abc.csv에서 로드됩니다.

`Set CurrentYear=1992;` ` ...  ` `SQL SELECT * FROM table1 WHERE
 Year=$(CurrentYear);`

Year=1992인 행이 선택됩니다.

```
 Set vConcatenate = ; For each vFile in FileList('.\*.txt')    Data:    $(vConcatenate)    LOAD * FROM [$(vFile)];    Set vConcatenate = Concatenate ; Next vFile
```

이 예에서는Concatenate 접두사를 사용하여 디렉터리의 모든 .txt 파일을 로드합니다. 필드가 약간 달라서 자동 연결이 작동하지 않는 경우에 이 작업이 필요할 수 있습니다. 첫 번째 로드에서는 Concatenate 접두사를 사용할 수 없으므로 vConcatenate 변수가 초기에는 빈 문자열로 설정됩니다. 디렉터리에 file1.txt, file2.txt 및 file3.txt의 3개 파일이 포함되어 있으면 3회 반복 중에 LOAD 문이 다음과 같이 확장됩니다.

`LOAD * FROM[.\file1.txt];` `Concatenate LOAD * FROM[.\file2.txt];` `Concatenate LOAD * FROM[.\file3.txt];`

## 대체 상태의 변수 확장

변수에는 하나의 값만 있으며 이는 모든 대체 상태에서 사용됩니다. 변수를 확장하면 이 값이 생성 위치 및 개체 상태에 관계 없이 동일합니다.

변수가 계산된 변수인 경우, 즉 정의가 등호 기호로 시작하는 경우 변수 정의에서 대체 상태를 지정하지 않는 한 기본 상태에서 계산이 수행됩니다.

이름이 `MyState`인 상태와 이름이 `vMyVar`인 변수가 있는 경우:

```
vMyvar: =only({MyState} MyField)
```

대체 상태 이름에 대한 명시적 참조가 있는 변수 정의 내용에 따라 변수 내용이 평가되는 상태가 결정됩니다.