Jump to content
Rpg²S Forum
  • 0

Bash Scritping


Alato
 Share

Question

Questo semestre nel corso di sistemi operativi sto avendo anche a che fare con la creazione di script per la shell Bash. Avendo molta carne al fuoco il professore ha preferito tralasciare molto sulla sintassi e sui comandi di Unix che alla fine possiamo trovare sulla documentazione.

 

La documentazione è bella corposa e mi sto trovando spesso a non sapere realmente come fare una cosa che a livello logico saprei come fare. Inoltre a volte mi viene da chiedermi "non è che poi esiste un comando che mi tornerebbe utile qui per risolvere la cosa in modo più furbo"?

 

Quindi inizio con il secondo caso.

Devo realizzare uno script che può ricevere due opzioni:

-o nomefile: indica il file in cui salvare i dati che elabora (se assente non salva)

-d path: indica la directory in cui eseguire lo script (se assente esegue in $PWD)

 

Ora, io pensavo di implementarli facendo un controllo sui parametri, facendo un uguaglianza tra le stringhe: insomma controllo proprio che il primo parametro sia "-d" o "-o" e poi agisco di conseguenza, per esempio prendendo il parametro successivo come parametro dell'opzione.

Però mi pare un metodo un po' troppo "c" che sfrutta poco le potenzialità dello scripting. Senza contare che nel testo dell'esercizio il professore a scritto questo:

"Per gestire le opzioni potete usare i modificatori per le variabili ${1:…} oppure il built-in getops (ma e’ fin troppo potente in questo caso)"

Però non ho capito cosa intende..

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

questa guida è una manna, piena di esempi: http://www.pluto.it/files/ildp/guide/abs/index.html

 

Esempio sull'uso di argomenti

Uso di ArgList

Edited by Keroro

I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...

Link to comment
Share on other sites

  • 0

Grazie del suggerimento, comunque era proprio quella la guida dataci dal professore (in inglese ma vabbè..)

 

Sono riuscito a trovare una possibile soluzione anche se devo un po' riadattarla all'esercizio

while [ $# -gt 0 ]
do
	case "$1" in
		-h | --help )  print_usage && exit 0;;
		-v | --version )  echo "$VERSION" && exit 0;;
		-t | --test )  TESTFLAG=1;;
		-c | --config ) CONFIGFILE=$2;;
		* ) break;;
		# altri flag e azioni possibili
	esac
	shift
done

 

Non capisco se così fa il controllo su più opzioni contemporanee..a leggerlo così non sembrerebbe ma magari lo sto analizzando male. Faccio qualche prova..

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...