Pagina 1 di 1

Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 13:46
da mordecai
Salve!Ho visto sul libro di Cooper,ma non ho trovato la soluzione.
Supponiamo che do un comando del genere:
which ifconfig
e il risultato sia /sbin/ifconfig,come posso memorizzare il risultato in una variabile,anzichè in un semplice file di testo?
Cosi se memorizzo il tutto in una variabile,posso usare quella stringa all'interno dello script.È possibile?

Grazie

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 13:52
da shark1500
Certo che si puo' fare:

var=$(which ifconfig)
echo $var

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 13:58
da mordecai
Grazie!
Però non ho capito come mai il $ precede la parentesi col comando dentro.
Sintatticamente che significa?Non può essere tutta una varibile,perchè prima non è stata dichiarata

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 14:03
da lamarozzo
in bash

Codice: Seleziona tutto

$(comando)
esegue il comando e restituisce l'output.

Sempre in bash, come nella maggior parte dei linguaggi di scripting, non serve dichiarare le variabili.

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 14:04
da d4z_c0nf
mordecai ha scritto:Grazie!
Però non ho capito come mai il $ precede la parentesi col comando dentro.
Sintatticamente che significa?Non può essere tutta una varibile,perchè prima non è stata dichiarata
Dovresti guardare il manuale della bash bash.
Perchè dirti che la bash espande ciò che segue il dollaro, ti serve a poco.
Comunque una variante, che ricordo che Mario (Vanoni), sostenesse fosse universalmente riconosciuta a differenza di quella su proposta è:
var=`comando`

Quegl'apici sono accenti gravi (altgr+apice).
rock

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 15:20
da sir_alex
d4z_c0nf ha scritto:
mordecai ha scritto:Grazie!
Però non ho capito come mai il $ precede la parentesi col comando dentro.
Sintatticamente che significa?Non può essere tutta una varibile,perchè prima non è stata dichiarata
Dovresti guardare il manuale della bash bash.
Perchè dirti che la bash espande ciò che segue il dollaro, ti serve a poco.
Comunque una variante, che ricordo che Mario (Vanoni), sostenesse fosse universalmente riconosciuta a differenza di quella su proposta è:
var=`comando`

Quegl'apici sono accenti gravi (altgr+apice).
rock
O apici retroversi in linguaggio internazionale (backticks)...

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 15:52
da DanBadJar
Puoi usare anche

Codice: Seleziona tutto

VARIABILE=`which ifconfig`

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 15:57
da conraid
mordecai ha scritto:Salve!Ho visto sul libro di Cooper,ma non ho trovato la soluzione.
http://tldp.org/LDP/abs/html/commandsub.html

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 20:46
da shark1500
E' vero, esiste anche con gli apici ``, pero' se non erro era deprecata la cosa a favore appunto di $().

Non ho tempo purtroppo per approfondire

Re: Bash:si può redirigere il risultato d'un comando in una var?

Inviato: gio 27 nov 2008, 21:40
da Mario Vanoni
shark1500 ha scritto:E' vero, esiste anche con gli apici ``, pero' se non erro era deprecata la cosa a favore appunto di $().
Molto bash(1) specifica,
altre (vecchie) shell conoscono solo ``, quindi portabilita`!

Se leggo in giro,
funzionano tuttora vecchie SGI con CPU MIPS !!!