C'è qualche differenza tra l'uso di un set in ksh e la semplice impostazione di una variabile?

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

  •  06-07-2019
  •  | 
  •  

Domanda

Le seguenti 2 righe sono completamente equivalenti? Altrimenti qual è la differenza? Ho visto molti script di shell utilizzare il numero 1 e mi chiedevo solo cosa ti offre rispetto al numero 2.

  1. set TARGET = " $ {XMS_HOME} / common / jxb / config / $ {RUNGROUP}. $ {ENV} .properties "
  2. TARGET = " $ {} XMS_HOME / common / JXB / config / $ {} RUNGROUP $ {} ENV .properties ".
È stato utile?

Soluzione

typeset creerà una variabile locale (una che non "perde"). Questo è utile nelle funzioni ma ho anche visto che viene utilizzato al livello più alto di uno script di shell.

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

stamperà

0
2

Puoi anche usare typeset per creare matrici e numeri interi.

[EDIT] aggiunta della parola chiave function perché alcune shell lo richiedono. Rimuovilo se offende la tua shell ma dovrebbe funzionare con la maggior parte delle versioni.

Altri suggerimenti

poiché lo scripting della shell è un linguaggio tipicamente diffuso (in cui le variabili non hanno un tipo di dati) possiamo usare il set di caratteri per impostare una particolare variabile per prendere solo un tipo di dati simile di valori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top