Domande su bash
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 Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
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 Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
- darkstaring
- Linux 3.x

- Messaggi: 658
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Domande su bash
Salve leggere un file di testo partendo dal 5 carattere per ogni riga..
E' possibile farlo con sed?
Grazie
E' possibile farlo con sed?
Grazie
Ultima modifica di darkstaring il gio 7 apr 2011, 11:50, modificato 2 volte in totale.
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
Re: Sed?
con sed bat tru non saprei, ma lo puoi fare sicuramente con cut:
cut -c 5- file
cut -c 5- file
- darkstaring
- Linux 3.x

- Messaggi: 658
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Sed?
Perfetto grazie, funziona 
Grande, mi serviva...
Ciaoo
Grande, mi serviva...
Ciaoo
- darkstaring
- Linux 3.x

- Messaggi: 658
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: [RISOLTO] Sed? --> cut
E se volessi passare l'output ad una variabile?
l'output di "echo 10+4 | bc"
l'output di "echo 10+4 | bc"
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
Re: Domande su bash
variabile=`echo 10+4 | bc`
oppure
variabile=$(echo 10+4 | bc)
N.B. "assegnare" non "passare"
oppure
variabile=$(echo 10+4 | bc)
N.B. "assegnare" non "passare"
-
pino_otto
- Linux 2.x

- Messaggi: 333
- Iscritto il: dom 9 lug 2006, 11:57
- Slackware: 14.2
- Kernel: 4.4.14-smp
- Desktop: KDE 4.14.3
- Località: Torino - Canton (China)
Re: Domande su bash
Per chi e' di Torino e interessa, stasera inizia un minicorso sulla bash presso il LUG di Torino:
http://glugto.org
http://glugto.org
- darkstaring
- Linux 3.x

- Messaggi: 658
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Domande su bash
E se volessi ciclare tra 2 variabili?
come potrei fare?
es:
Ie variabili MIN e MAX sono inizializzate
ma il cilo non và
Grazie
come potrei fare?
es:
Codice: Seleziona tutto
read TARGET
MIN=`echo $TARGET-150 | bc`
MAX=$(echo $TARGET+150 | bc)
echo $MIN $MAX
for TMP in {$MIN..$MAX}; do
..........
ma il cilo non và
Grazie
- umaga
- Packager

- Messaggi: 180
- Iscritto il: lun 30 gen 2006, 10:19
- Slackware: 13.37
- Kernel: 2.6.38.4-smp
- Desktop: KDE 4.7
- Località: Cagliari
Re: Domande su bash
con il costrutto {a..b} non puoi usare variabili al posto di a e b, devono essere numeri fissi.
puoi risolvere pero usando seq:
[code]for TMP in $(seq $MIN $MAX); do[/code]
puoi risolvere pero usando seq:
[code]for TMP in $(seq $MIN $MAX); do[/code]
- darkstaring
- Linux 3.x

- Messaggi: 658
- Iscritto il: mer 13 ott 2010, 13:55
- Nome Cognome: Francesco Achenza
- Desktop: KDE
- Distribuzione: Arch Linux
- Contatta:
Re: Domande su bash
Tu 6 un grandeumaga ha scritto:con il costrutto {a..b} non puoi usare variabili al posto di a e b, devono essere numeri fissi.
puoi risolvere pero usando seq:Codice: Seleziona tutto
for TMP in $(seq $MIN $MAX); do
Offtopic: Avete visto Slackware For Dummies Project questo viewtopic.php?f=12&t=23417
Sarebbe bello avere cose come queste
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: Domande su bash
Ne approfitteri per fare anche io una domanda circa l'assegnazione di variabile col metodo di cui avete parlato sopra:
Poniamo che l'output del nostro "comando" sia genericamente "pippo".
Che cosa accade quando richiamo la variabile per utilizzarla nel seguito dello script?
1- viene eseguito ogni volta il "comando"
2- viene semplicemente usato il "valore" che quel comando aveva al momento dell'assegnazione, ovvero "pippo" nell'esempio sopra
Mi spiego in altro modo:
il comando viene effettivamente eseguito al momento dell'assegnazione o al momento dell'utilizzo della variabile "${VAR}"?
Chiedo perchè in un mio script avevo appunto usato una variabile assegnandole l'output di un comando che sfruttava wget:
Praticamente otteneva l'output e quindi il valore di assegnazione attraverso internet, nella fattispecie la variabile "SIZE" doveva contenere la dimensione in bytes di un file remoto "$LINK".
Nel momento in cui il comando viene eseguito e si interroga il link via internet, lo script rallenta parecchio a seconda della connessione che si ha. Quindi, se il comando viene eseguito all'atto dell'assegnazione e basta, nessun problema. Invece se ogni volta che la variabile viene usata è necessario contattare il LINK lo script sarà molto più lento, spero d'essermi spiegato.
Se quello fosse il caso la soluzione potrebbe essere:
In tal modo l'utilizzo di ${SIZE} non scomoderebbe sicuramente internet con conseguentirallentamenti.
Ho comunque pensato di chiedere per capire un po' meglio la questione.
Codice: Seleziona tutto
VAR=$(comando)
VAR=`comando`
Che cosa accade quando richiamo la variabile per utilizzarla nel seguito dello script?
1- viene eseguito ogni volta il "comando"
2- viene semplicemente usato il "valore" che quel comando aveva al momento dell'assegnazione, ovvero "pippo" nell'esempio sopra
Mi spiego in altro modo:
il comando viene effettivamente eseguito al momento dell'assegnazione o al momento dell'utilizzo della variabile "${VAR}"?
Chiedo perchè in un mio script avevo appunto usato una variabile assegnandole l'output di un comando che sfruttava wget:
Codice: Seleziona tutto
SIZE=$(wget -S --spider "${LINK}" 2>&1|grep Content-Length |sed 's/.*: //'
Nel momento in cui il comando viene eseguito e si interroga il link via internet, lo script rallenta parecchio a seconda della connessione che si ha. Quindi, se il comando viene eseguito all'atto dell'assegnazione e basta, nessun problema. Invece se ogni volta che la variabile viene usata è necessario contattare il LINK lo script sarà molto più lento, spero d'essermi spiegato.
Se quello fosse il caso la soluzione potrebbe essere:
Codice: Seleziona tutto
wget -S --spider "${LINK}" 2>&1|grep Content-Length |sed 's/.*: //' > $TMPFILE
SIZE=$(cat $TMPFILE)
Ho comunque pensato di chiedere per capire un po' meglio la questione.
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
Re: Domande su bash
la seconda che hai dettojoe ha scritto:Ne approfitteri per fare anche io una domanda circa l'assegnazione di variabile col metodo di cui avete parlato sopra:
Poniamo che l'output del nostro "comando" sia genericamente "pippo".Codice: Seleziona tutto
VAR=$(comando) VAR=`comando`
Che cosa accade quando richiamo la variabile per utilizzarla nel seguito dello script?
1- viene eseguito ogni volta il "comando"
2- viene semplicemente usato il "valore" che quel comando aveva al momento dell'assegnazione, ovvero "pippo" nell'esempio sopra
- joe
- Iper Master

- Messaggi: 3986
- Iscritto il: ven 27 apr 2007, 11:21
- Slackware: 15.0
- Kernel: 5.15.38
- Desktop: dwm
Re: Domande su bash
Grazie della conferma 