bash: importare variabili da un file .conf

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
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.
Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

bash: importare variabili da un file .conf

Messaggio da cesconix »

Sapete come fare a importare delle variabili da un file di testo o di configurazione che sia (creato da me)? mi servirebbe fare tanti file in lingua diversa con le stesse variabili che contengono il testo, però, nelle svariate lingue. Come potrei fare?

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

se il file è in formato bash puoi caricarlo col comando source (che puoi anche abbreviare con "."). oppure è la volta buona x imparare ad usare gettext (che poi è molto banale) :).

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

è bash si..quindi "." ma come si usa? non c'è un man che mi spieghi (forse faccio una googolata). Però ho visto l'output di "."

Codice: Seleziona tutto

Fr4NkiR@nixlab:~$ .
-bash: .: filename argument required
.: usage: . filename [arguments]
Fr4NkiR@nixlab:~$
:shock: :shock: praticamente dovrebbe essere tipo:

Codice: Seleziona tutto

. miofile.conf
e poi come dorei richiamarle!?

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

azz ho notato che una volta caricato il file con "." le ho visibili con "set" ... ma poi come le rimuovo (tipo alla fine del programma)??

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

unset nomevariable

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

bene...ho un altro problema: è da 3 ore che cerco di chiamare una variabile all'interno del comando "awk" per incrementarla in un ciclo while. Vi posto un esempio:

Codice: Seleziona tutto

Fr4NkiR@nixlab:~$ cat /etc/passwd | grep "Fr4NkiR" | awk -F ":" '{print $1}'
Fr4NkiR
Fr4NkiR@nixlab:~$
in questo modo otterro' la prima colonna (print $1) prima dei ":". Ok, adesso... se invece la colonna la vorrei stabilire in una variabile? ho pensato di fare:

Codice: Seleziona tutto

Fr4NkiR@nixlab:~$ n=1
Fr4NkiR@nixlab:~$ cat /etc/passwd | grep "Fr4NkiR" |awk -F ":" '{print $($n)}'
Fr4NkiR:$1$oCR0SCFf$HkAlwSeJ8MAoNBa71LttS.:500:100:Francesco,,,:/home/Fr4NkiR:/bin/bash
Fr4NkiR@nixlab:~$
come vedete ho messo in $n il valore "1" ma su awk (nel print) non funziona! come risolvereste!? ho provato mille modi...

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

vuoi parametrizzare la colonna che usi in awk?
ti consiglio di usare cut e di fare così:

Codice: Seleziona tutto

varia=1
cat /etc/passwd | grep "Fr4NkiR" | cut -d ":" -f $varia
ciao!

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

si lo so, ma a me serve awk e una variabile contatore!

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

mmmmm forse in effetti...ghghgh..HAI RAGIONE!!! :P :P :P

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

ah ah ah... :wink:

ciao!

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

no aspetta...con cut non posso avere un "delimiter" di più caratteri, accetta solamente un carattere delimitatore :cry:

DarkNeo
Linux 4.x
Linux 4.x
Messaggi: 1071
Iscritto il: sab 4 giu 2005, 0:00
Nome Cognome: Stefano Arbitrio
Slackware: Slackware64 14
Kernel: 3.2.X
Desktop: KDE
Località: Matrix

Messaggio da DarkNeo »

FrANkiR ha scritto:è bash si..quindi "." ma come si usa? non c'è un man che mi spieghi (forse faccio una googolata).

Codice: Seleziona tutto

man bash
;)

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

Codice: Seleziona tutto

va=1
cat /etc/passwd | grep "Fr4NkiR" | eval awk -F ":"  \'\{print$\($va\)\}\'

Avatar utente
cesconix
Linux 2.x
Linux 2.x
Messaggi: 337
Iscritto il: mer 29 dic 2004, 0:00
Nome Cognome: Francesco Pasqua
Slackware: slackware64 -current
Kernel: 2.6.35.7
Desktop: Xfce
Località: Catania

Messaggio da cesconix »

figo, ma come mai eval? che fa eval? il man non mi dice niente di interessante ghgh...e poi perchè bisogna mettere tutti quei slash? io prima non li mettevo..sono indispensabili?

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

ho il sospetto che ti serva una guida su bash scripting...
http://www.anirudh.net/docs/linux_sysad.pdf

eval fa sì che la shell valuti la linea di comando 2 volte; gli slash servono per quotare il carattere immediatamente successivo, in modo che la shell non lo prenda sul serio; gli apici (singoli e doppi) fanno la stessa cosa, ma su più caratteri;

ciao!

Rispondi