Elaborato script bash

Bash, Perl, Python, Ruby, ...

Elaborato script bash

Messaggioda carlogt » 24/03/2014, 17:27

Ciao a tutti,sono nuovo, sto facendo uno script bash su come ottenere informazione specifiche sui moduli del kernel utilizzando il comando lsmod, ma trovo qualche difficoltà nel trovare comandi riguardanti la visualizzazione dello spazio totale occupato dai moduli in uso, e se esiste o meno il modulo relativo al bluetooth. Vi scrivo di seguito la traccia dell'esercizio e lo svolgimento di quello che sono riuscito a fare. Se notate altri errori, o qualche consiglio/suggerimento da dare sono ben lieto di accettarli! Grazie a tutti.

TRACCIA Scrivere uno script in bash che permetta all'utente (utilizzando select) di ottenere informazione specifiche sui moduli del kernel (usando opportunamente lsmod). In particolare:

numero totale di moduli
numero moduli in uso (HINT: valore terza colonna diversa da zero)
spazio totale occupato dai moduli in uso
se esiste o meno il modulo relativo al bluetooth (scritto esattamente così)
tutte le informazioni precedenti
exit
SVOLGIMENTO

#!/bin/bash
OPTIONS="1 2 3 4 5 6"
echo"Inserisci uno dei seguenti numeri:$OPTIONS"
select op in $OPTIONS; do
if["$opt"="1"]; then
caricati=$(cat | wc -l)
echo("Il numero totale di moduli è: $caricati"
elif["$opt"="2"];then
utilizzati=$(cat | grep -v "^0$" | wc -l)
echo "Il numero di moduli in uso è: $utilizzati"
elif["$opt"="3"];then
echo"...."
elif["$opt"="4"];then
echo"...."
elif["$opt"="5"];then
#comandi unificati
echo"...."
elif["$opt"="6"];then
echo"Uscita in corso..."
exit
else
echo"Puoi selezionare solo un numero compreso tra 1 e 6, riprova"
fi
done[/code]
carlogt
Newbie
Newbie
 
Messaggi: 1
Iscritto il: 24/03/2014, 17:24

Re: Elaborato script bash

Messaggioda s3v » 24/03/2014, 19:16

carlogt ha scritto:...trovo qualche difficoltà nel trovare comandi riguardanti la visualizzazione dello spazio totale occupato dai moduli in uso

Non ho trovato niente di meglio di:
Codice: Seleziona tutto
lsmod | awk 'NR>1 { print $2 }' | paste -sd+ | bc

lsmod = visualizza i moduli
awk = estrae la seconda colonna (eccetto la prima riga, NR>1)
paste = crea un'unica riga in cui i numeri sono separati da "+"
bc = interpreta la riga sommando i numeri

Al posto di paste+bc potresti scrivere un ciclo "for". Vedi tu.

Stranamente "lsmod" separa le colonne in un modo che non ho capito, per cui "cut" non funziona.

carlogt ha scritto:... e se esiste o meno il modulo relativo al bluetooth.

Questa è criptica.
Il modulo "relativo al bluetooth" quale sarebbe?

Suggerimento
Utilizza la sintassi:
Codice: Seleziona tutto
select opt in "Numero totale moduli" "Numero moduli in uso" "Spazio totale" etc. etc.; do

è più bello da vedersi ;)

Suggerimento2
Edita il precedente messaggio inserendo il codice dello script tra i tag [code]

Benvenuto nel forum
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5691
Iscritto il: 31/12/2008, 11:54


Torna a Scripting

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti