선언과 조판의 차이점은 무엇입니까


22

실제 사례를 통해 선언과 조판의 차이점을 누구나 설명 할 수 있습니까?

답변:


27

에서 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.


bash 스크립트에서 이것이 어디에서 왜 사용되는지에 대한 예를 제공해 주시겠습니까?
Rahul Patil

1
... 내가 말했듯이, 그것들은 정확히 동일합니다. 나는 그들이 그렇게 구별 할 수있는 방법을 이해하지 못한다.
Chris Down

2
좋아요 "폐기"는에 표시 help typeset되지 않고에 표시 됩니다 man typeset.
fedorqui

2
@ChrisDown, 왜 정확히 typeset쓸모없는 것으로 간주 되는지 알지 못 합니까?
Alexej Magura

3

나는 declare악을 피하는 것이 유용한 경우를 알고 있습니다 eval: 변수 간접 :

$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value

이것은 좋은 의견입니다 만 어떻게 대답 관한 질문 수행 typeset하고 declare?
jw013

이것은 이미 잘 크리스 아래로 응답되어, 내 대답은 경우입니다 그것의 유용한
질 Quenot

아마도 나는 명확하지 않았다. 의견은 의견이어야하며 답변은 답변이어야합니다. 이것은 답변이 아니라 의견입니다.
jw013

3
내 발췌 문장은 주석에서 명확하지 않습니다
Gilles Quenot

그러나 여전히 typeset으로 변수를 할당 할 수 있습니다 ... 선언을 typeset으로 바꾸면 여전히 동일한 결과를 얻습니다.
pcarvalho
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.