Ho uno script che ha diversi file di input, generalmente questi sono i valori di default memorizzati in un posto standard e richiamati dallo script.argomenti della riga di comando bash che sostituiscono i valori predefiniti per le variabili
Tuttavia a volte è necessario eseguirlo con ingressi modificati.
Nella sceneggiatura attualmente dico 3 variabili $ A $ B e $ C, ora voglio eseguirlo con un non predefinito $ B, domani potrei voler eseguirlo con un non predefinito $ A e $ B .
ho avuto uno sguardo intorno a come analizzare gli argomenti della riga di comando: How do I parse command line arguments in Bash?
Ma io non sono sicuro come trattare con avere qualche insieme da riga di comando aruguments parte del tempo?
Non ho abbastanza rappresentante di rispondere alla mia domanda però ho una soluzione:
https://stackoverflow.com/a/4610469/2339623
#!/bin/bash
a=input1
b=input2
c=input3
while getopts "a:b:c:" flag
do
case $flag in
a) a=$OPTARG;;
b) b=$OPTARG;;
c) c=$OPTARG;;
esac
done
Scuse Io, ovviamente, non ha cercato come accuratamente come pensavo ...
È possibile utilizzare 'getopts' per questo scopo. Ci sono molti tutorial, qualcosa come http://aplawrence.com/Unix/getopts.html può essere utile per iniziare. – fedorqui
Grazie, ho visto questo sulle domande che ho collegato. Mi chiedevo se esiste un modo standard per fare in modo che gli argomenti dei comandi sovrascrivano le variabili. Ad esempio, quando si definiscono le funzioni in python è possibile impostare un valore predefinito. Posso vedere che con un controllo if posso sostituire il valore predefinito con l'argomento della riga di comando, ma non ero sicuro che esistesse un modo standard per farlo? – Lanrest