Pagina 1 di 1
script: verifica esistenza di una stringa nel file [risolto]
Inviato: mercoledì 26 aprile 2017, 17:58
da JordanDunk
Buongiorno a tutti, ho un piccola problema che non riesco a risolvere. Sto scrivendo uno script che richiede di inserire una stringa, se questa stringa esiste nel file allora chiama una funzione, altrimenti segnala l'errore.
io ho provato cosi:
echo "Inserire nome del gruppo"
read nome_gruppo
if [ grep $nome_gruppo group=0 ]
then
funzione1 #viene chiamata la funzione
else
echo " è falso." #dovrebbe ritornare a richiedere il nome del gruppo
fi
Re: problema con file e bash
Inviato: mercoledì 26 aprile 2017, 19:05
da UbuNuovo
Non ho capito quel 'group=0', se devi fare un'assegnazione la devi fare fare dopo "then" o "else".
Per la verifica non serve usare 'test'.
Se, in caso di errore, devi far inserire nuovamente il testo puoi mettere richiesta e verifica in una funzione, tipo:
Codice: Seleziona tutto
#!/bin/bash
nome_file='elenco_gruppi.txt'
function funzione1(){
echo "Ciao, sono funzione1"
}
function inserimento(){
echo "Inserire nome del gruppo"
read nome_gruppo
if ! grep -q "$nome_gruppo" "$nome_file"; then
echo -e "Nome gruppo non valido! Reinserirlo\n"
inserimento
fi
}
inserimento
funzione1
-q serve per non avere output da grep
Se non vuoi che la verifica sia case-sensitive aggiungi l'opzione "i", cioè '-qi'
P.S. Metti un titolo esplicativo e usa il tag code per il codice.
Re: problema con file e bash
Inviato: giovedì 27 aprile 2017, 11:22
da JordanDunk
Grazie mille, veramente utile.
Devo ancora esercitarmi bene con l'uso delle if e come la bash interpreta i comandi perchè sono abituato con il C.
Posso ricambiarti il favore in qualche modo?
Re: problema con file e bash [risolto]
Inviato: giovedì 27 aprile 2017, 14:34
da UbuNuovo
Si! Puoi dare aiuto ad altri utenti.
Puoi cominciare cambiando il titolo in uno che indichi lo specifico problema; in questo modo altri utenti possono trovare facilmente quello che cercano.
