Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

résumer

Avec l'ajout de paramètres positionnels, nous pouvons maintenant écrire des scripts assez fonctionnels. Pour des tâches simples et répétitives, les paramètres positionnels permettent d'écrire des fonctions shell très utiles qui peuvent être placées dans le répertoire d'un utilisateur. .bashrc fichier.

NOTRE sys_info_page programme a gagné en complexité et en sophistication. Voici une liste complète, avec les changements les plus récents mis en évidence :



#! / Bin / bash


# sys_info_page : programme pour afficher une page d'informations système


NOMPROG=$(nom de base $0)

TITLE="Rapport d'informations système pour $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="Généré $CURRENT_TIME, par $USER"


report_uptime () { chat <<- _EOF_

Temps de disponibilité du système

$(temps de disponibilité)

_EOF_ retour

#! / Bin / bash


# sys_info_page : programme pour afficher une page d'informations système


NOMPROG=$(nom de base $0)

TITLE="Rapport d'informations système pour $HOSTNAME" CURRENT_TIME=$(date +"%x %r %Z")

TIMESTAMP="Généré $CURRENT_TIME, par $USER"


report_uptime () { chat <<- _EOF_

Temps de disponibilité du système

$(temps de disponibilité)

_EOF_ retour


}


report_disk_space () { chat <<- _EOF_

Utilisation de l'espace disque

$(df -h)

_EOF_ retour

}


report_home_space () {

if [[ $(id -u) -eq 0 ]] ; puis chat <<- _EOF_

Utilisation de l'espace domestique (tous les utilisateurs)

$(du -sh /home/*)

_EOF_

d'autre

chat <<- _EOF_

Utilisation de l'espace domestique ($USER)

$(du -sh $HOME)

_EOF_

fi retour

}


utilisation () {

echo "$NOMPROG : utilisation : $NOMPROG [-f fichier | -i]" return

}


write_html_page () { chat <<- _EOF_

$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)

_EOF_ retour

}


# traiter les options de ligne de commande

}


report_disk_space () { chat <<- _EOF_

Utilisation de l'espace disque

$(df -h)

_EOF_ retour

}


report_home_space () {

if [[ $(id -u) -eq 0 ]] ; puis chat <<- _EOF_

Utilisation de l'espace domestique (tous les utilisateurs)

$(du -sh /home/*)

_EOF_

d'autre

chat <<- _EOF_

Utilisation de l'espace domestique ($USER)

$(du -sh $HOME)

_EOF_

fi retour

}


utilisation () {

echo "$NOMPROG : utilisation : $NOMPROG [-f fichier | -i]" return

}


write_html_page () { chat <<- _EOF_

$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)

_EOF_ retour

}


# traiter les options de ligne de commande

image

résumer


interactif=

nom de fichier=


tandis que [[ -n $1 ]]; ne cas 1 $ dans

-f | --déposer)

décalage

nom de fichier=$1

;;

interactif=

nom de fichier=


tandis que [[ -n $1 ]]; ne cas 1 $ dans

-f | --déposer)


-je | --interactive) interactive=1

;;

-h | --help) sortie d'utilisation

;;

*) utilisation >&2

sortie 1

;;

décalage esac

fait


# mode interactif


if [[ -n $interactif ]] ; alors tandis que vrai ; faire

read -p "Entrez le nom du fichier de sortie : " filename if [[ -e $filename ]] ; alors

read -p "'$filename' existe. Écraser? [y/n/q] > " case $REPLY in

Y|y) pause

;;

Q|q) echo "Programme terminé." sortir

;;

*) Continuez

;;

Esac

elif [[ -z $filename ]] ; puis continue

d'autre

pause

fi

fait

fi


# page html de sortie


if [[ -n $filename ]] ; alors

si vous touchez $filename && [[ -f $filename ]]; puis write_html_page > $filename

d'autre

-je | --interactive) interactive=1

;;

-h | --help) sortie d'utilisation

;;

*) utilisation >&2

sortie 1

;;

décalage esac

fait


# mode interactif


if [[ -n $interactif ]] ; alors tandis que vrai ; faire

read -p "Entrez le nom du fichier de sortie : " filename if [[ -e $filename ]] ; alors

read -p "'$filename' existe. Écraser? [y/n/q] > " case $REPLY in

Y|y) pause

;;

Q|q) echo "Programme terminé." sortir

;;

*) Continuez

;;

Esac

elif [[ -z $filename ]] ; puis continue

d'autre

pause

fi

fait

fi


# page html de sortie


if [[ -n $filename ]] ; alors

si vous touchez $filename && [[ -f $filename ]]; puis write_html_page > $filename

d'autre


echo "$PROGNAME : Impossible d'écrire le fichier '$filename'" >&2 exit 1

fi d'autre

écrire_html_page

fi

echo "$PROGNAME : Impossible d'écrire le fichier '$filename'" >&2 exit 1

fi d'autre

écrire_html_page

fi


Nous n'avons pas encore fini. Il y a encore plus de choses que nous pouvons faire et des améliorations que nous pouvons apporter.


Meilleur système d'exploitation Cloud Computing chez OnWorks :