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>

Garder les scripts en cours d'exécution

Lors du développement de notre programme, il est utile de maintenir le programme dans un état exécutable. En faisant cela et en testant fréquemment, nous pouvons détecter les erreurs tôt dans le processus de développement. Cela rendra les problèmes de débogage beaucoup plus faciles. Par exemple, si nous exécutons le programme, apportons une petite modification, puis exécutons à nouveau le programme et trouvons un problème, il est très probable que la modification la plus récente soit la source du problème. En ajoutant les fonctions vides, appelées bouts en langage programmeur, nous pouvons vérifier le flux logique de notre programme à un stade précoce. Lors de la construction d'un stub, c'est une bonne idée d'inclure quelque chose qui fournit un retour au programmeur, qui montre que le flux logique est en cours d'exécution. Si nous regardons maintenant la sortie de notre script :



[moi@linuxbox ~]$ sys_info_page

Rapport d'informations système pour twin2

[moi@linuxbox ~]$ sys_info_page

Rapport d'informations système pour twin2


Rapport d'informations système pour linuxbox

Généré le 03/19/2009 à 04:02:10 PM EDT, par moi


Rapport d'informations système pour linuxbox

Généré le 03/19/2009 à 04:02:10 PM EDT, par moi



nous voyons qu'il y a des lignes vides dans notre sortie après l'horodatage, mais nous ne pouvons pas être sûrs de la cause. Si nous modifions les fonctions pour inclure des commentaires :



rapport_uptime () {

echo "Fonction report_uptime exécutée."

retourner

}


report_disk_space () {

echo "Fonction report_disk_space exécutée."

retourner

}


report_home_space () {

echo "Fonction report_home_space exécutée."

retourner

}

rapport_uptime () {

echo "Fonction report_uptime exécutée."

retourner

}


report_disk_space () {

echo "Fonction report_disk_space exécutée."

retourner

}


report_home_space () {

echo "Fonction report_home_space exécutée."

retourner

}


et exécutez à nouveau le script :



[moi@linuxbox ~]$ sys_info_page

Rapport d'informations système pour linuxbox

Rapport d'informations système pour linuxbox

Généré le 03/20/2009 05:17:26 AM EDT, par moi Fonction report_uptime exécutée.

Fonction report_disk_space exécutée. Fonction report_home_space exécutée.

[moi@linuxbox ~]$ sys_info_page

Rapport d'informations système pour linuxbox

Rapport d'informations système pour linuxbox

Généré le 03/20/2009 05:17:26 AM EDT, par moi Fonction report_uptime exécutée.

Fonction report_disk_space exécutée. Fonction report_home_space exécutée.

Garder les scripts en cours d'exécution


nous voyons maintenant que, en fait, nos trois fonctions sont en cours d'exécution.

Avec notre cadre de fonction en place et fonctionnel, il est temps d'étoffer une partie du code de la fonction. Premièrement le rapport_uptime fonction:


rapport_uptime () {

chat <<- _EOF_

Temps de disponibilité du système

$(temps de disponibilité)

_EOF_

retourner

}

rapport_uptime () {

chat <<- _EOF_

Temps de disponibilité du système

$(temps de disponibilité)

_EOF_

retourner

}


C'est assez simple. Nous utilisons un document here pour afficher un en-tête de section et la sortie du Stabilité commande, entouré de balises pour conserver la mise en forme de la commande. Les report_disk_space la fonction est similaire :


report_disk_space () {

chat <<- _EOF_

Utilisation de l'espace disque

$(df -h)

_EOF_

retourner

}

report_disk_space () {

chat <<- _EOF_

Utilisation de l'espace disque

$(df -h)

_EOF_

retourner

}


Cette fonction utilise le df -h commande pour déterminer la quantité d'espace disque. Enfin, nous allons construire le report_home_space fonction:


report_home_space () {

chat <<- _EOF_

Utilisation de l'espace domestique

$(du -sh /home/*)

_EOF_

retourner

}

report_home_space () {

chat <<- _EOF_

Utilisation de l'espace domestique

$(du -sh /home/*)

_EOF_

retourner

}


Nous utilisons les du commande avec le -sh options pour effectuer cette tâche. Ceci, cependant, n'est pas une solution complète au problème. Alors que cela fonctionnera sur certains systèmes (Ubuntu, par exemple), cela ne fonctionnera pas sur d'autres. La raison en est que de nombreux systèmes définissent les permissions des répertoires personnels pour les empêcher d'être lisibles par le monde, ce qui est une mesure de sécurité raisonnable. Sur ces systèmes, le report_home_space la fonction, telle qu'elle est écrite, sera


image

ne fonctionne que si notre script est exécuté avec des privilèges de superutilisateur. Une meilleure solution serait de faire en sorte que le script ajuste son comportement en fonction des privilèges de l'utilisateur. Nous en reparlerons dans le prochain chapitre.


Fonctions Shell dans votre fichier .bashrc

Les fonctions du shell remplacent parfaitement les alias et sont en fait la méthode préférée pour créer de petites commandes à usage personnel. Les alias sont très limités dans le type de commandes et de fonctionnalités shell qu'ils prennent en charge, alors que les fonctions shell autorisent tout ce qui peut être scripté. Par exemple, si nous aimions le report_disk_space fonction shell que nous avons développée pour notre script, nous pourrions créer une fonction similaire nommée ds pour notre .bashrc fichier:

ds () {

echo "Utilisation de l'espace disque pour $HOSTNAME" df -h

}


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