Logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

Reasumując

With the addition of positional parameters, we can now write fairly functional scripts. For simple, repetitive tasks, positional parameters make it possible to write very useful shell functions that can be placed in a user’s .bashrc plik.

Nasi sys_info_page program has grown in complexity and sophistication. Here is a complete listing, with the most recent changes highlighted:



#! / bin / bash


# sys_info_page: program to output a system information page


PROGNAME=$(basename $0)

TITLE="Raport informacji o systemie dla $HOSTNAME" CURRENT_TIME=$(data +"%x %r %Z")

TIMESTAMP="Wygenerowano $CURRENT_TIME, przez $USER"


report_uptime () { cat <<- _EOF_

Czas pracy systemu

$(czas pracy)

_EOF_ powrót

#! / bin / bash


# sys_info_page: program to output a system information page


PROGNAME=$(basename $0)

TITLE="Raport informacji o systemie dla $HOSTNAME" CURRENT_TIME=$(data +"%x %r %Z")

TIMESTAMP="Wygenerowano $CURRENT_TIME, przez $USER"


report_uptime () { cat <<- _EOF_

Czas pracy systemu

$(czas pracy)

_EOF_ powrót


}


report_disk_space () { cat <<- _EOF_

Wykorzystanie miejsca na dysku

$(df-h)

_EOF_ powrót

}


report_home_space () {

jeśli [[ $(id -u) -eq 0 ]]; następnie kot <<- _EOF_

Wykorzystanie miejsca w domu (wszyscy użytkownicy)

$(du -sz /dom/*)

_EOF_

więcej

kot <<- _EOF_

Wykorzystanie miejsca w domu ($USER)

$(du -sh $HOME)

_EOF_

do powrotu

}


użycie () {

echo "$PROGNAME: użycie: $PROGNAME [-f plik | -i]" return

}


napisz_stronę_html() { kot <<- _EOF_

$TYTUŁ

$TYTUŁ

$ZNACZNIK CZASOWY

$(czas_działania raportu)

$(przestrzeń_dysku_raportu)

$(przestrzeń_domowa_raportu)

_EOF_ powrót

}


# process command line options

}


report_disk_space () { cat <<- _EOF_

Wykorzystanie miejsca na dysku

$(df-h)

_EOF_ powrót

}


report_home_space () {

jeśli [[ $(id -u) -eq 0 ]]; następnie kot <<- _EOF_

Wykorzystanie miejsca w domu (wszyscy użytkownicy)

$(du -sz /dom/*)

_EOF_

więcej

kot <<- _EOF_

Wykorzystanie miejsca w domu ($USER)

$(du -sh $HOME)

_EOF_

do powrotu

}


użycie () {

echo "$PROGNAME: użycie: $PROGNAME [-f plik | -i]" return

}


napisz_stronę_html() { kot <<- _EOF_

$TYTUŁ

$TYTUŁ

$ZNACZNIK CZASOWY

$(czas_działania raportu)

$(przestrzeń_dysku_raportu)

$(przestrzeń_domowa_raportu)

_EOF_ powrót

}


# process command line options

Reasumując


interactive=

nazwapliku=


podczas gdy [[ -n $1 ]]; wykonaj przypadek $1 w

-f | --plik)

przesunięcie

nazwapliku=$1

;;

interactive=

nazwapliku=


podczas gdy [[ -n $1 ]]; wykonaj przypadek $1 w

-f | --plik)


-i | --interactive) interaktywny=1

;;

-h | --help) użycie wyjścia

;;

*) użycie >&2

wyjście 1

;;

esac shift

zrobić


# tryb interaktywny


jeśli [[ -n $interactive ]]; wtedy gdy prawda; wykonaj

przeczytaj -p "Podaj nazwę pliku wyjściowego: " filename jeśli [[ -e $filename ]]; wtedy

przeczytaj -p "'$filename' istnieje. Nadpisz? [t/n/q] > " przypadek $REPLY w

Y|y) przerwa

;;

Q|q) echo "Program zakończony." exit

;;

*) Kontynuować

;;

to C

elif [[ -z $filename ]]; następnie kontynuuj

więcej

złamać

fi

zrobić

fi


# wyjściowa strona html


jeśli [[ -n $filename ]]; wtedy

jeśli dotknij $filename && [[ -f $filename ]]; wtedy write_html_page > $filename

więcej

-i | --interactive) interaktywny=1

;;

-h | --help) użycie wyjścia

;;

*) użycie >&2

wyjście 1

;;

esac shift

zrobić


# tryb interaktywny


jeśli [[ -n $interactive ]]; wtedy gdy prawda; wykonaj

przeczytaj -p "Podaj nazwę pliku wyjściowego: " filename jeśli [[ -e $filename ]]; wtedy

przeczytaj -p "'$filename' istnieje. Nadpisz? [t/n/q] > " przypadek $REPLY w

Y|y) przerwa

;;

Q|q) echo "Program zakończony." exit

;;

*) Kontynuować

;;

to C

elif [[ -z $filename ]]; następnie kontynuuj

więcej

złamać

fi

zrobić

fi


# wyjściowa strona html


jeśli [[ -n $filename ]]; wtedy

jeśli dotknij $filename && [[ -f $filename ]]; wtedy write_html_page > $filename

więcej


echo "$PROGNAME: Nie można zapisać pliku '$filename'" >&2 exit 1

fi inny

napisz_stronę_html

fi

echo "$PROGNAME: Nie można zapisać pliku '$filename'" >&2 exit 1

fi inny

napisz_stronę_html

fi


We’re not done yet. There are still more things we can do and improvements we can make.


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: