Ich versuche, die Dateien in einem Verzeichnis als Optionen in einem Bash-Skript zu verwenden. Der Benutzer sollte in der Lage sein, einen auszuwählen und dann den Namen der ausgewählten Datei in eine Variable zu übergeben. Bis jetzt kann ich die Liste der Dateien bekommen, aber nach ein paar Stunden versuche ich nicht herausfinden, wie man sie als Optionen zeigt.Dateien auflisten und in einem Menü mit Bash anzeigen
#!/bin/bash
prompt="Please select a file:"
options=($(find -maxdepth 1 -print0 | xargs -0))
PS3="$prompt "
select opt in "${options[@]}" "Quit"; do
case "$REPLY" in
for i in "${options[@]}"
do
$i') echo "You picked $opt which is file $REPLY";;'
done
$((${#options[@]}+1))) echo "Goodbye!"; break;;
*) echo "Invalid option. Try another one.";continue;;
esac
done
Jede Hilfe wird sehr geschätzt. Vielen Dank!
Funktioniert gut, danke! – castaway
Ich erhalte einen Fehler mit dem obigen Code./home/RepLoqt # sh -x RevPrxyLogQuery.sh 'title =' Reverse-Proxy-Log-Abfrage-Tool (RepLoqt) 'prompt =' Wählen Sie die Protokolldatei, die Sie abfragen möchten: ++ finden ./logfiles -maxdepth 1 -print0 ++ xargs -0 + Optionen = '(./ Logdateien ./logfiles/log_18-44 ./logfiles/log_18-3) ' $ '\ r''Reverse Proxy-Log-Abfrage-Tool (RepLoqt) Everse-Proxy-Log Abfrage-Tool (RepLoqt) 'PS3 =' Wählen Sie die Protokolldatei, die Sie abfragen möchten: 'evPrxyLogQuery.sh: Zeile 7: Syntaxfehler in der Nähe des unerwarteten Tokens ' ' evPrxyLogQuery.sh: Zeile 7:' opt in "$ { Optionen [@]} "" Beenden "; – antman1p
Egal, aus irgendeinem Grund, weil ich die Erweiterung .sh am Ende der Datei hatte, gab es mir diesen Fehler. Sobald ich die Erweiterung entfernt habe, hat es funktioniert ... Ich bin mir nicht sicher warum. – antman1p