Ich versuche, ein Bash-Skript zu erstellen, mit dem der Benutzer sowohl einen Menü-Stil als auch eine Befehlszeilen-Schalter-Stil-Schnittstelle verwenden kann. Ich habe mich gefragt, ob es einen Weg gibt, einen Parameter an eine Menüoption in select
zu übergeben, als wäre es nur ein Argument für ein Skript. Zum Beispiel kann ich in meinem Skript eine Datei angeben, die in meinen Junk-Ordner verschoben werden soll, indem ich junk -d file.txt
sage. Wenn der Benutzer jedoch keine Parameter angibt, sollte er die Option select
verwenden. d. h. 1) move file 2) clear junk folder 3) watch folder
usw.Wie Parameter mit Select in Bash übergeben werden
In diesem Menü möchte ich in der Lage sein, die Option zu schreiben und dann ein Argument an diese Option zu senden. Wie 1 filetobemoved.txt
. Ich habe versucht, setzen $OPTARG
nach der Methode, die durch das Menü aufgerufen wird, aber das scheint nicht zu funktionieren.
Hier ist der Code, den ich für das Menü im Moment habe, ich versuche, die Wiederherstellungsmethode aufzurufen und ein Argument (den Dateinamen) zu übergeben.
if (($# == 0))
then if (($OPTIND == 1))
then select menu_list in list recover delete total watch kill exit
do case $menu_list in
"list") list;;
"recover") recover $GETOPT;;
"delete") delete;;
"total") total;;
"watch") _watch;;
"kill") _kill;;
"exit") exit 0;;
*) echo "unknown option";;
esac
done
fi
Danke für jede Hilfe.