Un aperçu des «variables» de Linux dans le langage de script de coquille - Partie 9
- 4436
- 1217
- Thomas Richard
Nous avons déjà écrit une série d'articles sur Script shell linux qui a été chaleureux à cette époque et c'était très pertinent même maintenant. Voici le lien vers la collection d'articles sur les scripts shell.
- Apprendre les scripts de shell linux
Ici, dans cet article, nous verrons le variables, Son exécution et son implémentation dans Shell Script.
Variables Linux SCRIPTION SOLLESauver une sortie
La sortie d'une commande peut être redirigée vers la sortie standard ou un fichier et peut être stockée dans une variable, également. Si la sortie d'une commande est suffisamment grande pour qu'elle ne s'adapte pas à l'écran, nous ne restons que la possibilité d'enregistrer la sortie dans un fichier dans une variable. Un avantage de l'enregistrement de la sortie en variable est une vitesse d'examen plus rapide. Les variables sont enregistrées dans la mémoire et donc elle a tendance à être rapide par rapport à la récupération à partir du fichier.
Variables dans la langue des scripts
Les variables sont un composant important utilisé dans les scripts shell et sont déclarés à l'aide de la commande bash "Déclarer". Pour déclarer une variable, dites 'niveau', nous devons exécuter la commande ci-dessous.
Niveau de déclaration $
Note: Nous devons utiliser "dactylographie», Une déclaration intégrée pour la compatibilité de la coque Korn. La «déclaration» est plus avancée et contient toutes les fonctionnalités, donc est recommandée lors de l'utilisation de bash.
Règles
- Un nom de variable doit justifier, l'utilisation de la variable dans le script.
- L'utilisation du même nom de variable tout au long du programme est fortement conseillé.
- Le nom des variables peut être en majuscules ainsi qu'en minuscules, mais par convention, les commandes des coquilles sont en minuscules et donc nous devons utiliser le nom des variables en majuscules, afin de supprimer toute confusion. e.g., Total_bild_amount, sell_report, ordonnance_receipt, etc.
Mise en œuvre
Une variable peut se voir attribuer une valeur en utilisant un signe égal (=). Pour attribuer une chaîne vide à une variable, nous ne devons pas fournir de valeur après un signe égal.
$ Niveau =
Vérifiez la valeur stockée au «niveau» variable comme.
$ printf "% i" $ niveau
printf, la commande la plupart de 'C«Les programmeurs sont conscients, impriment les données. %je - Représente entier. Nous pouvons le remplacer par % c pour le caractère ou % c pour la chaîne, au besoin.
Niveau de $: Notez le '$«Ce qui fonctionne comme substituteur de valeur à la variable»NIVEAU'.
Échantillon de sortie
$ printf "% i" $ niveau 0
Attribuer une valeur à la variable.
$ Niveau = 0
Vérifiez les données stockées en variable.
$ printf "% i" $ niveau 0
NOTE: Il est intéressant de noter que dans les deux cas, lorsque nous n'avons pas attribué la valeur à la variable et lorsque nous avons attribué la valeur '0'à la variable'NIVEAU' les sorties 0. Bien que la sortie soit la même dans les deux cas, mais le script shell gère à la fois la déclaration variable différemment.
Attribuer une nouvelle valeur à la variable.
$ Niveau = 121
Vérifiez les données stockées en variable.
$ printf "% i" $ niveau 121
Unset une variable
Déclarer est une commande bash et il crée une variable uniquement lorsqu'il est exécuté. La variable ainsi créée reste en mémoire jusqu'à ce que le script s'arrête ou que la variable soit détruite.
$ niveau inférieur
Variables prédéfinies en bash
Bash a fini 50 variables prédéfinies. Certaines de ces variables ont une signification particulière attachée à bash e.g., une variable ALÉATOIRE Sorte un nombre aléatoire. S'il n'est pas défini puis défini à nouveau, la valeur de variable d'origine est perdue pour toujours. Il est donc conseillé de ne pas utiliser de variable définie par système.
Voici une liste de quelques variables de bash utiles.
- Bash-le nom de Bash de bash.
- Bash_env-in un script shell, le nom du fichier de profil exécuté avant le démarrage du script.
- Bash_version-la version de bash (par exemple, 2.04.0 (1) -release).
- Colonnes - le nombre de caractères par ligne sur votre écran (par exemple, 80).
- Nom d'hôte - le nom de l'ordinateur. Sous certaines versions de Linux, cela peut être le nom de la machine. Sur d'autres, cela peut être un nom de domaine entièrement qualifié.
- HostType-Type.
- Accueil - Le nom de votre répertoire domestique.
- Ostype - le nom du système d'exploitation.
- Liste des chemins de recherche séparés par Colon Path pour trouver une commande à exécuter.
- PPID-L'ID de processus du processus parent du shell.
- Prompt_command-command à exécuter avant le paramètre de la chaîne d'invite primaire PS1.
- PWD-Le répertoire de travail actuel (tel que défini par la commande CD).
- Random-renvoie un nombre aléatoire entre 0 et 32767 à chaque fois qu'il est référencé.
- Shell-la coque préférée à utiliser; Pour les programmes qui commencent un shell pour vous.
- Terme-le type d'émulation terminal (par exemple, console).
La règle de la séparation des mots.
$ Niveau = 0 $ printf "% i" $ niveau 0 et $ niveau = ”0” $ printf "% i" $ Level 0
Dans les deux cas, la sortie reste la même. Alors quelle est la différence de résultat lors de l'utilisation de la citation?
Vérifions la même chose avec différentes données variables.
$ Niveau = 0; 1 ; 2; 3; 4; 5 bash: 1: commande non trouvée bash: 2: commande non trouvée bash: 3: commande non trouvée bash: 4: commande non trouvée bash: 5: commande non trouvée
$ printf "% i" $ niveau 0
Sans oublier, la sortie n'est pas correcte. Bash prend la place après '0«Comme la terminaison et donc la valeur de la variable est définie comme«0'. Maintenant, nous essayons d'utiliser des devis pour les variables comme ci-dessous.
$ Niveau = ”0; 1 ; 2; 3; 4; 5 ”$ printf"% s "Niveau de $ 0; 1; 2; 3; 4; 5
Le résultat n'est toujours pas correct. Bash a pris les valeurs variables et a supprimé tous les espaces entre eux. Ainsi printf n'a pas interprété 0,1,2,3,4,5 comme des valeurs distinctes. Alors quelle est la solution?
printf "% s" "$ niveau" 0; 1 ; 2; 3; 4; 5
Ouais! Mettre la substitution variable sous des devis est la solution. Les citations regroupent les caractères dans Shell et interprètent les caractères spéciaux d'une manière significative.
Les citations peuvent être utilisées consécutives et c'est une bonne idée de renfermer des substitutions variables par des devis. De plus, il peut être utilisé pour séparer le texte global des citations. Voici un exemple.
$ Niveau = 5 $ FLAL_MESSAGE = "J'ai effacé le niveau" "$ Level" ". Je mérite l'appréciation."$ printf"% s "" $ Flag_Message "
«J'ai dégagé le niveau5. Je mérite l'appréciation."
La séparation de morceaux de texte cité avec l'espace aboutira au même problème que celle discutée ci-dessus. Le bash traitera l'espace blanc comme une terminaison. Une autre façon de substitution variable est.
$ Niveau = 5 $ FLAL_MESSAGE = "J'ai effacé le niveau $ niveau. Je mérite l'appréciation."$ printf"% s "" $ Flag_Message "" J'ai effacé le niveau 5. Je mérite l'appréciation."
Les citations simples restreignent le bash d'imprimer des caractères spéciaux.
$ printf "% s" '$ Flag_Message' "$ Flag_Message"
La barre arrière (/)
Le barreinte fonctionne comme une citation unique pour un personnage. Avez-vous pensé à comment vous imprimerez (")?
$ printf "% c" "\" ""
Quand % Q regroupé avec printf, Fournit une barre arrière après chaque mot pour assurer l'espacement des mots.
$ Niveau = 5 $ FLAL_MESSAGE = ""J'ai effacé le niveau $ niveau. Je mérite l'appréciation.""$ printf""% q """" $ Flag_Message """" I \ a \ effacée \ Level \ 5.\ I \ mérite \ Appréciation.""
C'est tout pour le moment. Nous essayons toujours de fournir à nos lecteurs des articles qui leur sont utiles de temps en temps. L'article couvert ci-dessus est vaste, donc le reste des sujets avec des exemples sera produit dans le prochain article qui comprendra des «attributs de variable», «exportation variable», etc.
Jusque-là, restez à l'écoute et connecté à Tecmint.com. N'oubliez pas de nous fournir vos précieux commentaires dans la section des commentaires ci-dessous.
"- « Activation de l'utilisateur et du mot de passe Protéger les répertoires Web sur Zentyal Webserver - Partie 10
- MySQLDUMPER AUTOL UN TOL DE BASE MYSQL PHP et PERL »