Linux : 로컬 변수에 대한 set 명령


9

로컬 / 환경 변수와 내보내기 / 설정 명령을 이해하려고합니다.

$ set FILEM="razrax"
$ echo $FILEM

$ FILEN="test"
$ echo $FILEN
test

echo $FILEM빈 문자열을 반환 하는 이유를 설명하십시오

답변:


21

bash와 혼동 하고 csh있습니다.

에서는 bash임의 본쉘 같은에서처럼 set에 커맨드 설정 옵션 (쉘 구성 설정처럼 -f, -C, -o noclobber...) 및 위치 파라미터들 ( $1, $2...).

set FILEM="razrax"

로 설정 $1합니다 FILEM=razrax.

$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax

Bourne과 같은 쉘에서 변수 할당 구문은 다음과 같습니다.

VAR=value

(의 양쪽에 공간이 허용되지 않습니다 =).

ksh그리고 다른 Bourne과 같은 쉘 (mksh, pdksh, zsh)은 set다음 과 같이 배열 변수를 지정할 수도 있습니다 .

set -A array value1 value2

zsh, bash, yash과의 새로운 버전 ksh이 구문 대신 사용 :

array=(value1 value2)

반대로 in csh또는 tcsh에서 구문은 다음과 같습니다.

set VAR = value
set array = (value1 value2)

( =선택 사항 주위에 공백 ).

에서 rc/ es쉘 :

VAR = value
array = (value1 value2)

( =선택 사항 주위에 공백 ).


좋은 답변 감사합니다. 내가 이해하지 못하는 유일한 차이점은 다양한 옵션과 로컬 변수의 차이점은 "옵션 설정 명령"입니까?
iJava

@iJava, 옵션을 set -C설정합니다 -C(와 동일 set -o noclobber). set foo양수인 foo에게 $1(및 $#(1 $2, $3이전에 설정된 경우를 unset)). 자세한 내용은 쉘 설명서를 확인하십시오.
Stéphane Chazelas

1
옵션이 무엇인지 이해하지 못합니다. 이러한 옵션이 main (String [] args)과 같은 프로그램으로 전송됩니까? 또는 무엇을? 그들은 어디에 사용됩니까?
iJava

1
@iJava는 쉘의 동작에 영향을주는 설정입니다. 다시 RTFM
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.