DATE:
====== Bash : vérifier le mode d'exécution interactif ======
Lorsque Bash est lancé en mode interactif l'option -i est précisée et la variable **P... iable pour déterminer si l'exécution courante est interactive ou non et adapter son comportement.
Depuis un shell interactif lorsque l'utilisateur invoque une command
syntaxe d'un fichier de script. Pour cela on peut invoquer un shell avec l'option -n (noexec) et le sc... -n monscript.sh
</code>
Le shell Bash peut être invoqué avec l'option **-x** pour activer le mode tr... ise en première ligne le shabang pour spécifier l'interpréteur à utiliser (bash) avec l'option **-x** ... ntes dans ce script sont affichées
# Le shell est invoqué avec l'option xtrace
</code>
A tout moment
{{tag>dev bash shell}}
====== Bash: Accès par indirection ======
L'accès à une valeur par indirection est possible en shell. Pour cela il faut **proc... ution de variable est abordé dans le wiki [[cours:informatique:fun_mooc:maitrise_du_bash_univ-reunion:... ubstitution on utilisera la commande **eval**. On indique au shell que le premier caractère ’$’ est à
DO: :TODO_DOCUPDATE:
====== bashdb ======
===== Installation =====
Sur les version récentes des dis... sé dans le gestionnaire de paquets mais on peut l'installer facilement à partir des sources.
<code bash>
apt-get install binutils
./configure
make
make check
# vé... valeur de umask
# valeur attendue 0022
umask
make install
</code>
===== Documentation =====
La docum
s avec mv ======
Lors de la phase de globbing, l’interpréteur remplace les métacaractères tels que ''... s noms de fichiers. Par défaut ce développement n'inclus pas les fichiers cachés :
<code bash>
# Le d... la valeur de l'option
shopt dotglob
# Activer l'inclusion des fichiers lors de la phase de globbing
shopt -s dotglob
# Désactiver l'inclusion des fichiers cachés lors de la phase de gl
el (équivaut à ''man -k'').
<code bash>
apt-get install man-db manpages
</code>
Les pages du manuel sont installées sous **/usr/share/man**
<note>
Certaines... ntrib** et **non-free** pour être disponibles à l'installation.
</note>
Liste des paquets contenant d... ** pour obtenir les paquets manpages-posix
===== Installation de l'aide en français =====
Une partie
le for**. Elle peut être directement tapée dans l’interpréteur bash. On récupère les fichiers dont on ... dans des fichiers scripts PHP:
<code bash>
for f in $(find . -type f -name \*.php -print);
do
grep --... mple de résultat retourné par le script:
<file>
./index.php:28:if(session_is_registered('nProfil') && ... n_is_registered('COORD_PROJECTION')){
./importcsv/index.php:23:if(session_is_registered('nProfil')){
.
une chaîne de caractères contenant des LF ne les interprète pas, elle peut donc être utilisée pour co... résentées en colonne:
<code bash>
echo $(cat data_in_column.txt)
</code>
===== tr =====
On peut rem... s avec la commande **tr**:
<code bash>
$ cat data_in_column.txt | tr '\n' ' '
</code>
===== awk ====... de de la commande **awk**:
<code bash>
cat data_in_column.txt | awk ‘{printf(“%s “, $0)}’
</code>
=
syntaxiquement faux,
# Il conduit a un problème d'interprétation par le shell
echo 'un exemple s\'il te plaît'
</code>
Les guillemets permettent d'inhiber le développement des noms de fichiers/dossie... es noms par le shell
# c'est la commande find qui interprete
find . -type f -iname "*.sh" -print
</code>
rguments passés aux scripts.
* **getopts** est intégré a l’interpréteur **bash** (primitve).
* **getopt** est un binaire.
La gestion des options n'e...
while getopts ":h" opt_name;
do
case $opt_name in
h) # affiche l'aide et quitte
echo "Cec
e ======
Pour obtenir un nombre aléatoire dans l'intervalle [0-32767] depuis le shell, on peut utilis... **$RANDOM**.
Pour limiter la valeur maximum de l'intervalle entre [0-N] avec N < 32767, on peut utili
rection des entrées/sorties ======
Pour un shell interactif l'entrée standard (stdin), la sortie stan... ://iditect.com/article/redirect-stderr-and-stdout-in-bash.html
* https://www.lojiciels.com/comment-t