Próbuję użyć plików w katalogu jako opcji w skrypcie basha. Użytkownik powinien móc wybrać jeden, a następnie przekazać nazwę wybranego pliku do zmiennej. Do tej pory mogę uzyskać listę plików, ale po kilku godzinach próbowania nie mogę wymyślić, jak pokazać je jako opcje.Pokaż listę plików i pokaż je w menu z bashem
#!/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
Każda pomoc jest doceniana. Dzięki!
Działa świetnie, dzięki! – castaway
Otrzymuję błąd za pomocą powyższego kodu./home/RepLoqt # sh -x RevPrxyLogQuery.sh 'title =' Narzędzie do odwracania dziennika proxy (RepLoqt) 'prompt =' Wybierz plik dziennika, którego chcesz użyć: ++ find ./logfiles -maxdepth 1 -print0 ++ xargs -0 + options = '(./ logfiles ./logfiles/log_18-44 ./logfiles/log_18-3) ' $ '\ r''Reverse Proxy Log Query Tool (RepLoqt) everse dziennik proxy Narzędzie do wysyłania zapytań (RepLoqt) 'PS3 =' Wybierz plik dziennika, który chcesz wysłać zapytanie: 'evPrxyLogQuery.sh: wiersz 7: błąd składni w pobliżu nieoczekiwanego tokenu ' ' evPrxyLogQuery.sh: wiersz 7:' wybierz optuj "$ { opcje [@]} "" Zakończ "; – antman1p
Nieważne, z jakiegoś powodu, ponieważ miałem rozszerzenie .sh na końcu pliku, to dawało mi ten błąd. Kiedy usunąłem rozszerzenie, zadziałało ... Nie jestem pewien dlaczego. – antman1p