Ich arbeite an einem Schulmaterial und die Frage ist: Verwenden Sie den Befehl ls
, um die Dateien im Verzeichnis 'apache2 / mods-available' aufzulisten. Listen Sie nur Dateien auf, die mit 'a' beginnen und die Dateierweiterung '.conf' haben. Listen Sie eine Datei pro Zeile im Verzeichnis auf. Geben Sie Ihren Bash-Code in $ () ein, um ihn auszuführen, und geben Sie die Antwort zurück, zum Beispiel: ANTWORT = $ (find. -Name 'Dateiname')
Ich habe versucht, das Problem folgendermaßen zu lösen:
Answer = $(ls -1 apache2/mods-available/a*.conf)
Und dann bekomme ich diese Antwort:
apache2/mods-available/actions.conf
apache2/mods-available/alias.conf
apache2/mods-available/autoindex.conf
Es ist leider falsch, weil die richtige Antwort lautet:
actions.conf
alias.conf
autoindex.conf
Hat jemand eine Idee, was los ist? Vielen Dank :)
3 Antworten
Danke an alle! Diese Antwort funktioniert tatsächlich für mich:
$(ls apache2/mods-available/a*.conf | cut -d/ -f3)
Sie können das folgende Skript verwenden
Answer=$(find apache2/mods-available/ -maxdepth 1 -name 'a*.conf' -exec basename {} \;)
Maxdepth ist die Suche in der Tiefe des Verzeichnisses 1
-exec Basisname {} \; ist den Namen zu bekommen
Versuchen Sie es mit Answer=$(ls -1 a*.conf)