Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
bash_base_0 [2020/03/11 18:17] – créée nekanbash_base_0 [2021/03/05 16:14] (Version actuelle) nekan
Ligne 1: Ligne 1:
-~~CLOSETOC~~ 
 ====== Variables, Redirection des flux ====== ====== Variables, Redirection des flux ======
 +<label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/03/11 18:06//
  
-===== Les variables utilisateur =====+===== Les Variables =====
  
-Les variables utilisateur (généralement appelée ''variables'', les autres types étant systématique précisé) sont les variables définies par les utilisateurs manuellement ou au travers d'un script. Elles n'ont d'existence que dans le contexte (script ou session) où elles sont créées. On les distingue alors des variables système ou les variables d'environnement.+==== Les variables utilisateurs ==== 
 + 
 +Les variables utilisateurs (généralement appelée ''variables'', les autres types étant systématique précisé) sont les variables définies par les utilisateurs manuellement ou au travers d'un script. Elles n'ont d'existence que dans le contexte (script ou session) où elles sont créées. On les distingue alors des variables systèmes ou les variables d'environnement.
  
   * Les variables sont définie par leur nom est une valeur leur est affecté avec ''='' :   * Les variables sont définie par leur nom est une valeur leur est affecté avec ''='' :
Ligne 60: Ligne 62:
 </sxh> </sxh>
  
-{{ :underconstruction-copy-300x150.jpg |}}+==== Les variables systèmes ==== 
 + 
 +''bash'' contient un certain nombre de variables prédéfinies ou dont la valeur est gérée par le système. 
 + 
 +|< 100% 30% 70% >| 
 +^  Variable  ^  Explication 
 +|  ''$?''  |  État de la dernière commande exécutée. Les valeurs possibles sont ''0'' pour OK, ''1'' pour avertissement, ''2'' pour échec critique et ''3'' pour état inconnu. 
 +|  ''$0''  |  Variable contenant le nom du script exécuté. 
 +|  ''$1'' à ''$9''  |  Variables contenant respectivement les premiers, seconds, etc jusqu'aux neuvièmes arguments du script exécuté. 
 +|  ''$*''  |  Variable contenant tous les arguments du script exécuté. Ces derniers sont alors traités comme un seul élément. | 
 +|  ''$@''  |  Variable contenant tous les arguments du script exécuté. Ces derniers sont alors traités comme une liste d'éléments séparés. 
 +|  ''$#''  |  Variable contenant la quantité de paramètres indiqués pour le script exécuté. 
 +|  ''$-''  |  Variable contenant les options du shell. 
 +|  ''$$''  |  Variable contenant le PID (**P**rocessus **ID**entification) du shell. 
 +|  ''$!''  |  Variable contenant le PID de dernier processus exécuté en arrière-plan | 
 +|  ''$_''  |  Variable contenant le dernier argument de la commande précédente. 
 + 
 +==== Les variables d'environnement ==== 
 + 
 +Les variables d'environnement sont des utilisables par tout le système. La commande ''env'' permet de les consulter. Pour en créer une ou la modifier, il suffit de la déclarer comme n'importe quelle variable puis d'utiliser la commande ''export'' suivie du nom de la variable déclarée. 
 + 
 +===== Redirection de flux ===== 
 + 
 +La redirection de flux est très largement utilisée en ''bash''. Elle consiste a envoyer les sorties standard et/ou d'erreur vers un fichier ou l'entrée standard d'une autre commande. On peut aussi s'en servir pour envoyer les données d'un fichier dans l'entrée standard d'une commande. 
 + 
 +|< 100% 10% 10% 50% 30% >| 
 +^  Redirecteur  ^  Fonction  ^ Explication  ^  Exemple 
 +|  ''>''  |  Redirige  |  Envoi la sortie standard de la commande de gauche vers le fichier de droite. Si il n'existe pas, alors ce dernier sera crée. Son contenu est alors remplacé par le flux redirigé.  |<sxh bash> ls > file.txt</sxh>
 +|  ''>>''  |  Concatène  |  Ajoute le flux de la sortie standard de la commande au contenu déjà existant du fichier.  |<sxh bash>ls -l >> file.txt</sxh>
 +|  ''2>''  |  Redirige les erreurs  |  Envoi la sortie d'erreur de la commande de gauche vers le fichier de droite. Si il n'existe pas, alors ce dernier sera crée. Son contenu est alors remplacé par le flux redirigé.  |<sxh bash> mkdir 2> error.log</sxh>
 +|  ''2>>''  |  Concatène les erreurs  |  Ajoute le flux de la sortie d'erreur de la commande au contenu déjà existant du fichier.  |<sxh bash>chmod 2>> error.log</sxh>
 +|  ''> /dev/null''  |  Supprime  |  Supprime l'affichage de la sortie standard  |<sxh bash>ls > /dev/null</sxh>  
 +|  ''2>&1''  | Redirige erreur vers standard  |  Redirige la sortie d'erreur de la commande vers son entrée standard.  |<sxh bash>ls -lR > /dev/null 2>&1</sxh>
 +|  ''<''  |  Injecte  |  Injecte le contenu du fichier de droite dans l'entrée standard de la commande de gauche.  |<sxh bash>cat < file.txt </sxh>
 +|  ''<<'' et ''<<-''  |  HereDoc  |  Voir chapitre dédié : [[bash_base_2|Boucles & HereDoc]]  |<sxh bash>cat << EOF 
 +test 
 +test2 
 +EOF</sxh>
 +|  ''|''  |  Pipe  |  Redirige la sortie standard de la première commande vers l'entrée standard de la seconde.  |<sxh bash>cat /var/log/syslog | grep 'deny'</sxh>
 +|  ''|&''  |  Connexion  |  Redirige les sorties standard et d'erreur de la première commande vers l'entrée standard de la seconde.  |<sxh bash>command1 |& command2</sxh>|
  
- --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/03/11 18:06// 
 ~~DISCUSSION~~ ~~DISCUSSION~~
  • bash_base_0.1583947071.txt.gz
  • Dernière modification : 2020/03/11 16:17
  • (modification externe)