User Tools

Site Tools


informatique:linux:programmation_shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:linux:programmation_shell [2019/04/24 09:36] – [Descripteurs de fichier] pteuinformatique:linux:programmation_shell [2020/01/08 10:52] – [Typage] pteu
Line 1: Line 1:
  
-====== Programmation Shell =======+======Programmation Shell=======
  
-Les différents shells peuvent avoir des fonctions sensiblement différentes voir incompatibles. Ce n'est pas le cas pour la majorité d'entre elles. Ici nous parlerons de [[https://fr.wikipedia.org/wiki/Bourne-Again_shell|bash]] car c'est le plus couramment utilisé. Pour afficher la liste des options de bash il faut saisir ''bash -c "help set"''. Pour lire un script sans exécuter les commandes : ''bash -n''.+{{ :informatique:linux:bash_logo.png?300|}}
  
 +Les différents shells peuvent avoir des fonctions sensiblement différentes voir incompatibles. Ce n'est pas le cas pour la majorité d'entre elles. Ici nous parlerons de [[https://fr.wikipedia.org/wiki/Bourne-Again_shell|bash]] car c'est le plus couramment utilisé.
 +
 +Pour afficher la liste des options de bash il faut saisir ''bash -c "help set"''. Pour lire un script sans exécuter les commandes : ''bash -n''.
  
   * ''. <CONFIG_FILE>'' => permet de faire un //include// (notez bien le point + espace ". ")   * ''. <CONFIG_FILE>'' => permet de faire un //include// (notez bien le point + espace ". ")
-  * ''!!'' => est remplacé par la dernière commande (différent de ''$_'' qui contient uniquement le dernier paramètre de la dernière commande)+  * ''!!'' => est remplacé par la dernière commande (différent de ''$_'' qui désigne uniquement le dernier paramètre de la dernière commande)
 <code bash> <code bash>
 $ touch toto $ touch toto
Line 58: Line 61:
 echo ${VAR=defaut}     # (ne produit rien) echo ${VAR=defaut}     # (ne produit rien)
 echo ${VAR:=defaut}    # defaut (VAR prend également cette valeur) echo ${VAR:=defaut}    # defaut (VAR prend également cette valeur)
 +</code>
 +
 +=====Typage=====
 +
 +Il n'y a pas de typage strict en bash, toutes les variables sont considérées comme des chaînes de caractères, sur lesquelles on peut toutefois réaliser des opérations arithmétiques par exemple, si elles ne contiennent que des chiffres.
 +
 +Pour "émuler" une variable booléenne par exemple, il convient de tester son contenu puisque c'est en réalité une string :
 +<code bash>
 +is_ready=true   # is_ready est une string qui vaut "true"
 +if [ "$is_ready" = true ]
 +   then echo "I'm ready"
 +   else echo "I'm not"
 +fi
 </code> </code>
  
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu