Hej, mam taki skrypt do napisania:
Napisz skrypt, przetwarzający dowolnie długą listę argumentów, traktowanych jako nazwy plików (z bezwzględną lub względną ścieżką katalogów), w następujący sposób. Dla pierwszego argumentu program powinien wyświetlić dwa słowa: nazwę katalogu i nazwę pliku bez ścieżki katalogów (użyj programów dirname i basename). Dla kolejnych plików, o ile ich ścieżka katalogów jest identyczna do poprzedniego pliku, skrypt wyświetla w tym samym wierszu tylko nazwę pliku bez ścieżki, a jeśli ścieżka się różni od poprzedniego pliku, to od nowego wiersza wyświetla znów ścieżkę katalogów oraz nazwę pliku. Na przykład, dla wektora argumentów:
*.c /etc/passwd /etc/shadow
powinniśmy otrzymać wynik podobny do następującego:
. fun1.c fun2.c main.c
/etc passwd shadow
Mam na razie coś takiego:
Previous=dirname$2
for var in "$@"
do
if [ var="$1" ]
then basename "$1"
dirname "$1"
else
if [ "$Previous"==dirname$var ]
then echo dirname$var
else
$Previous=dirname$var
fi
fi
done
Jak wpisuję coś takiego:
prog *.pdf /home/kat1 /home/kat2
To wypluwa:
tylkojedenpdf.pdf . tylkojedenpdf.pdf . tylkojedenpdf.pdf . tylkojedenpdf.pdf .
NIe mam bladego pojęcia jak to naprawić. Proszę o jakieś wskazówki. :)