Próbuję napisać skrypt bash dla zadania domowegopytanie, gdzie muszę uzyskać dostęp do niektórych plików w folderze źródłowym, usunąć z nich wszystkie komentarze i wysłać nieskomentowane pliki (lub kopie) do folderu docelowego, oto moja bieżąca próba:
#!/bin/bash
destination="$1"
source="$2"
mkdir "$destination"
files=(${$("$source"/*)})
for file in "${files[@]}"
do
grep -E -v "^[[:space:]]*[//]" "$file">> "/$destination/$file"
done
Problemem wydaje się być to, że nie tworzęelementy tablicy poprawnie, chcę, aby tablica zawierała nazwy plików w folderze źródłowym, czy ktoś może skierować mnie do właściwego sposobu zrobienia tego (najlepiej bez rozwiązania całego ćwiczenia, ponieważ jest to zadanie domowe) /
Odpowiedzi:
4 dla odpowiedzi № 1Zmień to
files=(${$("$source"/*)})
do
files=("$source"/*) # grab name of all files under $source dir and store it in array
2 dla odpowiedzi nr 2
W rzeczywistości nie potrzebujesz wcale tablicy, a dla dużej liczby pasujących plików bardziej wydajne jest również iterowanie bezpośrednio po wzorcu.
for file in "$source"/*; do