Podstawy programowania w shellu 361
for pełni w shellu bash funkcję inną niż w pozostałych językach programowania: służy do przetwarzania list słów wyraz po wyrazie. Skrypty przeważnie operują na listach wyrazów, więc takie zastosowanie pętli for niesie ze sobą duże korzyści. Najczęściej występującym przykładem listy słów jest lista argumentów wejściowych dla skryptu
Funkcje są jedną z bardziej zaawansowanych możliwości shella bash. W większości języków programowania występują często powtarzające się fragmenty kodu. Aby ułatwić ich powtórne wykorzystanie w nowych programach, grupuje się je w funkcje, które z technicznego punktu widzenia stanowią podprogramy wywoływane przez program główny. W językach Pascal i Modula 2 te fragmenty kodu nazywa się procedurami, podczas gdy w C, C++ i shellu bnsli noszą one naz.w'ęfunkcji.
Lwaga
Osobiście lubię trzymać wszystkie swoje funkcje w podkatalogu /bin/include katalogu domowego. Katalog include służy zazwyczaj do przechowywania plików nagłówkowych dla programów w C i Ch , ale częste korzystanie z tych języków wyrabia pewne nawyki, z których trudno potem zrezygnować.
Oprócz lego, staram się dzielić swoje funkcje na odrębne kategorie i umieszczać je w osobnych plikach - przykładowo plik fileraan zawiera funkcje służące do odnajdywania i przetwarzania plików. Moje biblioteki funkcji nie są zbyt rozbudowane -zbyt wiele czasu poświęcam na przenoszenie się z systemu na system, co nie pozwala mi zgromadzić dużego archiwum.
Większość funkcji wymaga jednego lub kilku argumentów, czyli danych, nad którymi funkcje mają pracować. Ogólnie rzecz biorąc, funkcje powinny być na tyle uniwersalne, aby umożliwić ich użycie w wielu różnych sytuacjach. Aby pozwolić wielu różnym skryptom na dzielenie tej samej biblioteki i mc zaśmiecać katalogu /bin wieloma kopiami tych samych funkcji, sash wprowadza mechanizm dołączania zewnętrznych plików do skryptów.
Zastanówmy się na chwilę nad korzyściami płynącymi z tego mechanizmu. Możemy teraz operować jednym lub kilkoma plikami zawierającymi funkcje dostępne dla każdego skryptu! Jeśli w jednej z funkcji bibliotecznych znajdziemy błąd i naprawimy go, wówczas wszystkie korzystające z tej funkcji programy zaczną automatycznie używać poprawionego kodu. Znacząco zmniejsza to ilość czasu potrzebnego na poprawianie skryptów i umożliwia programiście zajęcie się innymi, ważniejszymi sprawami.