Podobne wykonanie skryptu przy różnych argumentach

0

Przepraszam, nie wiedziałem jak lepiej zatytułować wątek.

Piszę skrypt, który wyświetla jakieś podstawowe informacje o użytkownikach w Uniksie. Użytkownicy podawani są jako argumenty uruchomienia np ./skrypt user1 user2 user3 ...
Jeżeli uruchomimy skrypt bez argumentów to ma być wyświetlany user wykonujący ten skrypt.
Napisałem już właściwie wszystko oprócz właśnie tego. Tzn - uruchamiam z argumentami to wszystko jest ok. Jeśli chcę uruchomić bez, no to jest prawie ok, skrypt się zapętla.

Tutaj kawałek kodu:

while [ $# -ge 0 ] 
do
    
    if [ $# -eq 0 ]; then
        username=`whoami`
    else
        username=$1
        shift
    fi
...
...
...
done

Wiem, że to jest źle, ale nie mogę wpaść na pomysł jak bez mnożenia kodu zrobić tak jak chce żeby działało.

0

może napiszę trochę inaczej co chcę uzyskać:
jeśli uruchomię skrypt bez argumentów to zmienna $username ma przyjmować wartość whoami i dalsza pętla(w której zawarty jest cały program) ma być wykonywana dokładnie raz.
jeśli uruchomię skrypt z parametrami, to ma się wykonywać dokładnie tyle razy ile jest argumentów, za każdym razem przypisując kolejną wartośc argumentu do zmiennej $username(pętla nie powinna się whoami już nie powinno być podstawiane pod zmienną i nie powinny być wypisywane wartości dla $username=whoami).

mi nie udało się osiągnąć wszystkich tych rzeczy na raz, co najwyżej jak działała jedna, to nie działała inna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1