Script di shell: modo di analizzare i parametri dalla riga di comando


4
myscript [-a a-arg] [-c c-arg] [-b] [-e] somedirectory

Dato che voglio che il mio script shell venga richiamato dalla riga di comando usando i parametri sopra - dove [queste parentesi] indicano che sono opzionali - qual è il metodo migliore per analizzarli?

Risposte:


5

Esistono alcuni metodi per analizzare gli argomenti della riga di comando. Supponendo che stai usando bash, probabilmente il modo meno doloroso è usare getopts.

Per esempio:

#!/bin/bash
while getopts  "abc:" flag
do
  echo "$flag" $OPTIND $OPTARG
done
[~] $. / ssc.sh -ab -c file
a 1
b 2
c 4 file

@John T. Grazie per la risposta: risolvi tutto tranne l'ultimo bit: la mia somedirectorynon è un'opzione - come potrei ottenere l'ultimo parametro (dopo aver getoptsterminato il ciclo)?
Bguiz,

Sarà l'ultima opzione rimasta in $@credo.
John T

1
Capito - shift $(($OPTIND - 1))era quello che stavo cercando!
Bguiz,

Eccellente! Buona sceneggiatura :)
John T
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.