une primitive du shell
</code>
Utilisée avec les commandes **while** et **case**, elle va permettre la gest... ptions et de leur argument saisis sur la ligne de commande du script.
Le détail du fonctionnement de **geto... * copie une option et son argument de la ligne de commande et les place dans des variables de travail. La bo... permet d'appeler autant de fois que nécessaire la commande **getopts** afin de parcourir l'ensemble des argu
tion **-x** pour activer le mode trace/debug. Les commandes sont affichées sur la sortie standard avant exéc... bash) avec l'option **-x** (**xtrace**) ainsi les commandes présentes dans le script seront affichées avant exécution.
<code bash>
#!/bin/bash -x
# Les commandes présentes dans ce script sont affichées
# Le she... script on peut activer/désactiver l'option via la commande interne **set**:
<code bash>
# Activer l'affichag
és à ces descripteurs.
===== Redirection sur une commande =====
Les exemples ci-dessous permettent de redi... er la sortie standard et la sortie d'erreur de la commande dans un fichier:
<code bash>
command > "/path/to... st possible d'utiliser la primitive **exec** sans commande en argument. La documentation détaille le fonctionnement de la primitive qui sans commande spécifiée applique les redirections sur le shell
hell interactif lorsque l'utilisateur invoque une commande ou un autre script, un nouvel environnement est c... rc ajouter une variable
* Invoquer une nouvelle commande et vérifier la présence des variables
===== La commande test =====
La commande **test** intègre une option intéressante **-t** permettant de vérifier si un descri
ne colonne vers une ligne.
===== echo =====
La commande echo lorsqu'elle reçoit en argument une chaîne de... mplacer les caractères NL par des espaces avec la commande **tr**:
<code bash>
$ cat data_in_column.txt | tr... e>
===== awk =====
Reformater à l'aide de la commande **awk**:
<code bash>
cat data_in_column.txt | a
d’exécution.
Décomposer les traitements, chaque commande s’exécute dans un sous process. Il est plus économique d’enchaîner plusieurs commandes via pipes. A chaque lancement d'une commande le shell exécute un fichier de configuration (pour bash c'est
en bash ======
<code bash>
if condition
then
commande 1
...
commande n
elseif condition 2
then
...
else
...
fi
</code>
===== Références =====
* http://www.commandeslinux.fr/structure-de-controle-if/
ossier depuis un script Bash, on peut utiliser la commande **stat** avec l'option **%%--format%%** qui perme... sous forme octale:
<code bash>
# Le retour de la commande ls est adapté au mode interactif
ls -l /tmp/aFile... yoann yoann 0 janv. 17 14:12 /tmp/aFile.txt
# La commande stat peut retourner la valeur octale résumant les
placer **tous les fichiers** d'un dossier avec la commande **mv** même les fichiers cachés, on peut donc uti... rs cachés, tous les fichiers sont déplacés par la commande mv.
===== Utiliser le développement entre accola
elancer une phase de substitution on utilisera la commande **eval**. On indique au shell que le premier cara... le HOME avant de faire l’exécution de la ligne de commande:
<code bash>
eval echo \${$repertoire}
/home/yo
doubles dans les scripts bash et sur la ligne de commande.
Notons qu'on ne peut pas placer de guillemet s... le développement des noms par le shell
# c'est la commande find qui interprete
find . -type f -iname "*.sh