답변:
보낸 사람 help -m declare
:
이름
declare
-변수 값과 속성을 설정하십시오.개요
declare
[-aAfFgilnrtux
] [-p
] [name
[ ] ...]=value
기술
변수 값과 속성을 설정하십시오.
변수를 선언하고 속성을 제공하십시오. 이름을 지정하지 않으면 모든 변수의 속성과 값을 표시하십시오.
옵션 :
-f
기능 이름 및 정의로 조치 또는 표시 제한
-F
함수 이름으로 만 표시 제한 (디버깅시 라인 번호 및 소스 파일 포함)
-g
쉘 함수에서 사용될 때 전역 변수를 작성하십시오. 그렇지 않으면 무시
-p
각 NAME의 속성과 값을 표시
속성을 설정하는 옵션 :
-a
NAME을 색인 배열로 만들려면 (지원되는 경우)
-A
NAME을 연관 배열로 만들기 (지원되는 경우)
-i
NAME에게 '정수'속성을 갖도록
-l
할당시 NAME을 소문자로 변환
-n
NAME을 값으로 명명 된 변수에 대한 참조로 설정
-r
NAME을 읽기 전용으로 설정
-t
NAME에게 'trace'속성을 갖도록
-u
할당시 NAME을 대문자로 변환
-x
NAMEs 내보내기
'
+
'대신 ' '를 사용-
하면 지정된 속성이 꺼집니다.정수 속성을 가진
let
변수는 변수에 값이 지정 될 때 수행되는 산술 평가 ( 명령 참조 )를 갖습니다.함수에서 사용될 때 명령
declare
과 같이 NAME을 로컬로 만듭니다local
. '-g
'옵션은이 동작을 억제합니다.종료 상태 :
유효하지 않은 옵션이 제공되거나 변수 할당 오류가 발생하지 않으면 성공을 반환합니다.또한보십시오
배쉬 (1)
이행
GNU bash, 버전 4.3.11 (1)-릴리즈 (i686-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
라이센스 GPLv3 + : GNU GPL 버전 3 이상 <http://gnu.org/ licenses / gpl.html>
따라서 declare
변수 값 과 속성 을 설정하는 데 사용됩니다 .
간단한 예를 통해 두 가지 속성을 사용하는 방법을 보여 드리겠습니다.
$ # First Example:
$ declare -r abc=ok
$ echo $abc
ok
$ abc=not-ok
bash: abc: readonly variable
$ # Second Example:
$ declare -i x=10
$ echo $x
10
$ x=ok
$ echo $x
0
$ x=15
$ echo $x
15
$ x=15+5
$ echo $x
20
위의 예에서 declare
일반 변수보다 변수 사용법을 이해해야한다고 생각합니다 ! 이 유형의 declare
ation은 함수, 스크립팅 루프에서 유용합니다.
또한 입력 변수 방문 : 선언 또는 조판
abc=ok
변수에 값을 할당합니다 abc
. declare abc
라는 변수를 선언합니다 abc
. 둘은로 결합 될 수 있습니다 declare abc=ok
.
bash에서는 다른 쉘과 마찬가지로 문자열 및 배열 변수를 선언 할 필요 declare
가 없으므로 연관 배열 을 만들거나 변수를 읽기 전용 declare -A abc
으로 만드는 등 abc
의 옵션을 전달하지 않는 한 필요하지 않습니다 declare -r
. 그러나 함수 내에서 declare
차이를 만듭니다. 변수가 함수의 로컬 변수가되므로 함수 외부의 변수 값 (있는 경우)이 유지됩니다. (을 사용하지 않으면 declare -g
변수가 로컬이 아닌 변수가됩니다. 예 declare -gA
를 들어 함수에 전역 연관 배열을 만드는 등의 다른 옵션과 결합 할 때 유용 합니다.) 예 :
f () {
declare a
a='a in f'
b='b in f'
echo "From f: a is $a"
echo "From f: b is $b"
}
a='Initial a'
b='Initial b'
f
echo "After f: a is $a"
echo "After f: b is $b"
산출:
From f: a is a in f
From f: b is b in f
After f: a is Initial a
After f: b is b in f
declare
내장으로 할 수있는 또 다른 일은
declare
내장 bash는 고유합니다. 그것은 ksh의 typeset
내장 과 매우 흡사하고 강렬 하며 bash는 호환성 typeset
의 동의어로 declare
제공됩니다. (Bash가 왜 그렇게 부르지 않았는지 모르겠다 typeset
). 세 번째 동의어가 local
있습니다. 도 있습니다 export
와 같은 인 declare -x
(모든 Bourne의 스타일 쉘)의 호환성을 위해 다시.
export
, local
그리고 declare
다른 조개와 가장 호환?
export
는의 모든 변종에 존재합니다 sh
. local
bash와 zsh에만 존재하며 bash에만 존재합니다 declare
. typeset
ksh, bash 및 zsh에 존재합니다.
declare
과 같이 NAME을 로컬로 만듭니다local
. 이-g
옵션은이 동작을 억제합니다. 참조하십시오help declare
.