Programowanie w Shellu (index)
W katalogu domowym stworzyć katalogi raporty i raporty/baza. W katalogu raporty/baza stworzyć kilka plików dla fikcyjnych osób w formacie:
# Nazwa pliku: ADAMCZYK.KAROL NAZWISKO=Adamczyk IMIE=Karol URODZINY=1983-06-12
W katalogu raporty stworzyć plik make_db.sh postaci:
#!/bin/bash # # make_db.sh # # Skrypt tworzacy plik DB, w którym pola w wierszu rozdzielone # sa znakiem tabulacji. BAZADIR="baza" PLIK_DB="osoby.db" rm -f ${PLIK_DB} for I in ${BAZADIR}/* do . $I # Tymczasowo wpisujemy srednik, ktory zamienimy na tabulacje. echo "${NAZWISKO};${IMIE1};${URODZINY}" done | tr ";" "\t" >> ${PLIK_DB}
Za pomocą polecenia ./make_db.sh wygenerować plik DB z danymi o osobach.
W katalogu raporty stworzyć plik make_html.sh postaci:
#!/bin/bash # # make_html.sh # # Skrypt tworzacy plik HTML z tabela. BAZADIR="baza" PLIK_HTML="osoby.html" TITLE="Lista uczestników obozu" rm -f ${PLIK_HTML} # Poczatek strony. echo "<html> <head>" >> ${PLIK_HTML} echo "<title>${TITLE}</title>" >> ${PLIK_HTML} echo "</head> <body>" >> ${PLIK_HTML} echo "<h1>${TITLE}</h1>" >> ${PLIK_HTML} # Generuje tabele. cat << EOF >> ${PLIK_HTML} <table border=2> <tr> <td>Nazwisko</td> <td>Imię</td> <td>Data urodzin</td> </tr> EOF for I in ${BAZADIR}/* do . $I echo "<tr>" echo "<td>${NAZWISKO}</td>" echo "<td>${IMIE}</td>" echo "<td>${URODZINY}</td>" echo "</tr>" # Mamy tu przekierowanie wyjscia z petli for. done >> ${PLIK_HTML} # Koniec tabeli. echo "</table> </body> </html>" >> ${PLIK_HTML}
Za pomocą polecenia ./make_html.sh wygenerować plik HTML z listą osób.
W katalogu raporty stworzyć plik db2html.sh postaci:
#!/bin/bash # # db2html.sh # # Skrypt tworzacy plik HTML z tabela na bazie pliku DB. PLIK_DB="osoby.db" PLIK_HTML="osoby.html" TITLE="Lista uczestników obozu" rm -f ${PLIK_HTML} cat << EOF >> ${PLIK_HTML} <html> <head> <title>${TITLE}</title> </head> <body> <h1>${TITLE}</h1> <table border=2> <tr> <td>Nazwisko</td> <td>Imię</td> <td>Data urodzin</td> </tr> EOF cat ${PLIK_DB} | \ while read NAZWISKO IMIE URODZINY do echo "<tr>" echo "<td>${NAZWISKO}</td>" echo "<td>${IMIE}</td>" echo "<td>${URODZINY}</td>" echo "</tr>" done >> ${PLIK_HTML} # Koniec tabeli i pliku HTML. cat << EOF >> ${PLIK_HTML} </table> </body> </html> EOF
Za pomocą polecenia ./db2html.sh z pliku DB wygenerować plik HTML z listą osób.
Jeżeli dane użytkownika przechowywane są w plikach tekstowych o ustalonym formacie, wtedy skrypty Shella mogą wyszukiwać potrzebną informację i generować raporty w różnych formatach:
Wygodne do przetwarzania w shellu są między innymi: