누구나 실제 예제를 통해 선언과 조판의 차이점을 설명 할 수 있습니까?
답변
bash
, typeset
및 declare
는 정확히 동일합니다. 유일한 차이점은 typeset
가 더 이상 사용되지 않는 것으로 간주된다는 것입니다.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ... Set variable values and attributes. Obsolete. See `help declare".
맨 페이지에는 같은 숨결로도 나열됩니다.
declare [-aAfFgilrtux] [-p] [name[=value] ...] typeset [-aAfFgilrtux] [-p] [name[=value] ...] Declare variables and/or give them attributes.
typeset
는 다른 셸 (예 : ksh93
)로 이식 가능합니다. 쉘 간 이식성을 목표로하는 경우 typeset
를 사용하십시오 (그리고 호출하는 방식이 이식 가능한지 확인하십시오). 이러한 이식성에 관심이 없다면 declare
를 사용하세요.
댓글
답변
declare
가 악을 피하는 데 유용한 경우를 알고 있습니다. eval
: 변수 간접 :
$ var=foo $ x=var $ declare "$x=another_value" $ echo $var another_value
댓글
- 좋은 댓글이지만 질문에 대한 답은 어떻게됩니까? ab 아웃
typeset
및declare
? - 이것은 이미 Chris Down의 답변입니다. 제 답변은 ' 유용합니다.
- 아마도 ' 명확하지 않았습니다. 댓글은 댓글이고 답변은 답변이어야합니다. 이것은 답변이 아니라 댓글입니다.
- 내 스 니펫은 ' 댓글에서 지워지지 않습니다
- 하지만 여전히 다음을 사용하여 변수를 할당 할 수 있습니다. 조판 … 선언을 조판으로 바꾸면 동일한 결과를 얻을 수 있습니다.
help typeset
,man typeset
가 아닙니다.typeset
이 (가) 구식으로 간주되는 이유를 아십니까?