Bash-Skript erstellt ein Array von ls?
Ich bin in den Prozess der Erstellung eines bash-Skript, das eine Liste der Dateien (in diesem Fall apache sites-available). Auflisten der Dateien ist einfach mein Ultimatives Ziel wäre es, nehmen Sie jede dieser Dateien in ein array, zeigt Sie an den Benutzer und erlauben dem Benutzer, wählen Sie die "Datei" - Prozess, in diesem Fall wäre es zu ermöglichen, die Website.
Ich habe nicht bekommen, sehr weit, ich weiß, ich muss die ls wie ein array in einer Schleife die Aktion:
array=$(ls)
for sites in $array(2)
do
echo "$sites"
done
Ich weiß, dass ich brauche, um index die einzelnen Dateien in das Verzeichnis und dann dem Benutzer zu ermöglichen, geben Sie die Anzahl zu ermöglichen. Also würde es so Aussehen:
(1) newdomain.com
(2) newdomain2.com
Which site would you like to enable (i.e 1)?
Hoffentlich, dass macht Sinn?
InformationsquelleAutor jason.dot.h | 2011-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht, wie Sie
ls
.Dies unterscheidet sich von dem, was Sie zu tun haben mit
ls
wie?Zu klären: benötigen Sie eine Reihe von Klammern, um anzuzeigen, eine array-Zuweisung, also mindestens würden Sie brauchen, um zu sagen
array=($(ls whatever))
. Sonst bist du immer eine lange Zeichenfolge.Hier ist ein guter Aufsatz, Rechtschreibung heraus, warum Parsen
ls
ist eine schlechte Idee.funktioniert einwandfrei. Wenn Sie möchten, Streifen Sie den Verzeichnisnamen auf expansion, das ist leicht getan: Siehe
"${array[@]##*/}"
- und Sie bekommen nur die Dateinamen, ohne den ganzen bugs, die kommen aus mitls
programmatisch.InformationsquelleAutor Ignacio Vazquez-Abrams
Könnten Sie sparen sich eine Menge Nachahmer mithilfe der built-in
select
Funktion.InformationsquelleAutor geekosaur
einige Tipp für den Einstieg :
Können Sie kombinieren diesen Ansatz mit wählen Sie natürlich.
IFS
. Siehe auch mywiki.wooledge.org/ParsingLsInformationsquelleAutor hornetbzz