Gibt es einen Unterschied zwischen in KSH mit typeset einfach eine variable Einstellung?

StackOverflow https://stackoverflow.com/questions/1027869

  •  06-07-2019
  •  | 
  •  

Frage

Sind die folgenden 2 Zeilen völlig gleichwertig? Wenn nicht, was ist der Unterschied? Ich habe viel von Shell-Skripten gesehen Nummer 1 zu nutzen und habe mich nur gefragt, was es Sie gibt im Vergleich mit der Nummer 2.

  1. typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
  2. TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
War es hilfreich?

Lösung

typeset wird eine lokale Variable (eine, die nicht „Leck“) erstellen. Dies ist nützlich, in Funktionen, aber ich habe es auch auf der obersten Ebene eines Shell-Skripts verwendet wird, gesehen.

a=0
function x {
    typeset a=1
}
x
echo $a
function y {
    a=2
}
y
echo $a

druckt

0
2

Sie können auch typeset verwenden Arrays und ganze Zahlen zu erstellen.

[EDIT] Hinzugefügt function Schlüsselwort, weil einige Granaten es erfordern. Entfernen Sie es, wenn es Ihre Schale beleidigt, aber es sollte mit den meisten Versionen arbeiten.

Andere Tipps

da Shell Scripting eine lose typisierte Sprache ist (in der Variablen nicht einen datytype haben) wir typeset eine bestimmte Variable festlegen können nur ähnliche Datentyp Werte zu übernehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top