Declare ve typeset arasındaki fark nedir


Yanıtlar:


27

In bash, typesetve declaretam olarak aynıdır. Tek fark, typeseteski olduğu kabul edilir.

typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
    Set variable values and attributes.

    Obsolete.  See `help declare'.

Man sayfası onları aynı nefeste listeler:

declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
    Declare variables and/or give them attributes.

typesetörneğin, diğer bazı kabuklara taşınabilir ksh93. Çapraz kabuk taşınabilirliğini hedefliyorsanız, kullanın typeset(ve arama şeklinizin taşınabilir olduğundan emin olun). Bu tür taşınabilirlikle ilgilenmiyorsanız, kullanın declare.


bash betiğinde bu kullanımın nerede ve neden olduğuna dair bir örnek verebilir misiniz
Rahul Patil

1
... dediğim gibi, hepsi aynı. Öyleyse onları nasıl ayırt edebileceğimi anlamıyorum.
Chris Down

2
İyi bir. "Eskimiş" ifadesinin yalnızca içinde göründüğünü help typesetunutmayın man typeset.
fedorqui

2
@ChrisDown, neden tam olarak typeseteskimiş kabul edildiğini bilemezdiniz ?
Alexej Magura

3

declareKötü eval: değişken dolaylı önlemek için yararlı bir durum biliyorum :

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

Bu güzel bir yorumdur ama nasıl o cevap hakkındadır soru yapar typesetve declare?
jw013

Bu zaten Chris Down tarafından iyi yanıtlandı, cevabım sadece yararlı olduğu bir durum
Gilles Quenot

Belki de net değildim. Yorumlar yorum olmalı ve cevaplar cevap olmalıdır. Bu bir yorum, cevap değil.
jw013

3
Snippet'im bir yorumda net olmaz
Gilles Quenot

ama yine de dizgi ile değişkenler atayabilirsiniz ... sadece bildirimi dizgi ile değiştirin ve yine de aynı sonucu elde edersiniz.
pcarvalho
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.