function readArgs() {
while getopts "i:o:p:s:l:m" OPTION; do
case "$OPTION" in
i)
input="$OPTARG"
;;
o)
output="$OPTARG"
;;
...
esac
done
}
readArgs
if [[ -z "$input" ]]; then
echo "Not set!"
fi
Questo è sempre dandomi Not set!
ma se io commento le linee function readArgs() {
, }
e readArgs
, funziona. Perché?Perché i "getopts" all'interno di una funzione non funzionano?
Inoltre,
input="$OPTARG"
echo "$input"
;;
non funziona.
Questo è necessario solamente se ci sono più invocazioni della funzione. –
L'OP non ha descritto il contenitore della funzione. Uso questi metodi per le funzioni che scrivo nel mio .bashrc –
Sebbene questa risposta non abbia risposto direttamente alla domanda degli OP, viene visualizzata una ricerca del motivo per cui getopts non funziona in una funzione ed è stato molto utile nel debug del mio codice (anche per funzioni nel mio .bashrc) – paulski