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>

Fonctions du shell

Notre script effectue actuellement les étapes suivantes pour générer le document HTML :

1. Ouvrez la page.

2. Ouvrez l'en-tête de page.

3. Définissez le titre de la page.

4. Fermez l'en-tête de la page.

5. Ouvrez le corps de la page.

6. En-tête de page de sortie.

7. Horodatage de sortie.

8. Fermez le corps de la page.

9. Fermez la page.

Pour notre prochaine étape de développement, nous ajouterons quelques tâches entre les étapes 7 et 8. Celles-ci incluront :

● Disponibilité et charge du système. Il s'agit du temps écoulé depuis le dernier arrêt ou redémarrage et le nombre moyen de tâches en cours d'exécution sur le processeur sur plusieurs intervalles de temps.

● Espace disque. L'utilisation globale de l'espace sur les périphériques de stockage du système.

● Espace d'accueil. La quantité d'espace de stockage utilisé par chaque utilisateur.


Si nous avions une commande pour chacune de ces tâches, nous pourrions les ajouter à notre script simplement par substitution de commande :



#! / Bin / bash


# Programme pour afficher une page d'informations système


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

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


chat << _EOF_

#! / Bin / bash


# Programme pour afficher une page d'informations système


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

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


chat << _EOF_


$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)

_EOF_

$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)

_EOF_


Nous pourrions créer ces commandes supplémentaires de deux manières. Nous pourrions écrire trois scripts séparés et les placer dans un répertoire répertorié dans notre PATH, ou nous pourrions intégrer les scripts dans notre programme comme fonctions shell. Comme nous l'avons mentionné précédemment, les fonctions shell sont des « mini-scripts » qui se trouvent à l'intérieur d'autres scripts et peuvent agir comme des programmes autonomes. Les fonctions shell ont deux formes syntaxiques. Tout d'abord, la forme plus formelle :

fonction prénom {

commandes

retourner

}

et la forme la plus simple (et généralement préférée) :

prénom () {

commandes

retourner

}

image

#! / Bin / bash

#! / Bin / bash

# Démo de la fonction Shell


function step2 { echo "Step 2" return

}

# Le programme principal commence ici echo "Etape 1"

# Démo de la fonction Shell


function step2 { echo "Step 2" return

}

# Le programme principal commence ici echo "Etape 1"

De prénom est le nom de la fonction et commandes est une série de commandes contenues dans la fonction. Les deux formes sont équivalentes et peuvent être utilisées de manière interchangeable. Ci-dessous, nous voyons un script qui montre l'utilisation d'une fonction shell :


1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

Fonctions du shell


13 étape2

14 echo "Étape 3"

13 étape2

14 echo "Étape 3"


Lorsque le shell lit le script, il passe sur les lignes 1 à 11, car ces lignes sont constituées de commentaires et de la définition de la fonction. L'exécution commence à la ligne 12, avec un echo commande. Ligne 13 en cours la fonction shell step2 et le shell exécute la fonction comme il le ferait pour n'importe quelle autre commande. Le contrôle du programme passe alors à la ligne 6, et la seconde echo la commande est exécutée. La ligne 7 est exécutée ensuite. Son retourner La commande termine la fonction et rend le contrôle au programme à la ligne suivant l'appel de fonction (ligne 14), et la dernière echo la commande est exécutée. Notez que pour que les appels de fonction soient reconnus comme des fonctions shell et non interprétés comme des noms de programmes externes, les définitions de fonction shell doivent apparaître dans le script avant d'être appelées.

Nous allons ajouter des définitions de fonctions shell minimales à notre script :



#! / Bin / bash


# Programme pour afficher une page d'informations système


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

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


report_uptime () { retour

}


report_disk_space () { retour

}


report_home_space () { retour

}


chat << _EOF_

$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)

#! / Bin / bash


# Programme pour afficher une page d'informations système


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

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


report_uptime () { retour

}


report_disk_space () { retour

}


report_home_space () { retour

}


chat << _EOF_

$ TITRE

$ TITRE

$TIMESTAMP

$(report_uptime)

$(espace_disque_rapport)

$(report_home_space)


_EOF_

_EOF_


Les noms de fonction shell suivent les mêmes règles que les variables. Une fonction doit contenir au moins une commande. Les retourner commande (qui est facultative) satisfait à l'exigence.


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