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

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

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

Messaggio 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

Avatar utente
shark1500
Linux 3.x
Linux 3.x
Messaggi: 785
Iscritto il: gio 3 apr 2008, 14:33
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde
Località: Modna

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

Messaggio da shark1500 »

Certo che si puo' fare:

var=$(which ifconfig)
echo $var

mordecai
Linux 3.x
Linux 3.x
Messaggi: 752
Iscritto il: mer 10 gen 2007, 21:59

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

Messaggio 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

Avatar utente
lamarozzo
Linux 3.x
Linux 3.x
Messaggi: 732
Iscritto il: gio 14 lug 2005, 0:00
Desktop: xfce
Distribuzione: archlinux
Località: Roma

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

Messaggio 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.

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar 14 mar 2006, 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.2-current64
Kernel: 4.14.73
Desktop: awesomeWM
Località: Pinerolo

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

Messaggio 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

sir_alex
Linux 3.x
Linux 3.x
Messaggi: 735
Iscritto il: lun 21 mar 2005, 0:00
Kernel: 2.6.35-22
Desktop: KDE4
Distribuzione: Ubuntu
Località: Milano - Corbola (RO)
Contatta:

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

Messaggio 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)...

Avatar utente
DanBadJar
Linux 4.x
Linux 4.x
Messaggi: 1027
Iscritto il: ven 28 lug 2006, 19:27
Nome Cognome: Daniele Malavasi
Slackware: 13.1
Kernel: 2.6.34.1
Desktop: XFCE - Gnome
Località: Bologna
Contatta:

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

Messaggio da DanBadJar »

Puoi usare anche

Codice: Seleziona tutto

VARIABILE=`which ifconfig`

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

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

Messaggio 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

Avatar utente
shark1500
Linux 3.x
Linux 3.x
Messaggi: 785
Iscritto il: gio 3 apr 2008, 14:33
Slackware: current
Kernel: 2.6.27.7-smp
Desktop: kde
Località: Modna

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

Messaggio 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

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

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

Messaggio 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 !!!

Rispondi