Bash a plusieurs commandes fournies avec le shell (c'est-à-dire construites à l'intérieur du shell bash).
Lorsque vous exécutez une commande intégrée, bash shell l'exécute immédiatement, sans appeler d'autre programme.
Les commandes intégrées du shell Bash sont plus rapides que les commandes externes, car les commandes externes forment généralement un processus pour l'exécuter.
Dans cet article, passons en revue quelques commandes intégrées utiles du shell bash avec des exemples.
1. Exemple de commande d'exportation Bash
La commande export est utilisée pour exporter une variable ou une fonction vers l'environnement de tous les processus enfants exécutés dans le shell actuel.
export varname=value
export -f functionname # exports a function in the current shell.
Il exporte une variable ou une fonction avec une valeur. La commande "env" liste toutes les variables d'environnement. Dans l'exemple suivant, vous pouvez voir que env affiche la variable exportée.
$ export country=India $ env SESSIONNAME=Console country=India _=/usr/bin/env
La commande "export -p" affiche également toutes les variables exportées dans le shell actuel.
2. Exemple de commande Bash eval
La commande eval combine tous les arguments donnés et évalue l'expression combinée et l'exécute, et renvoie l'état de sortie de la commande exécutée.
$ cat evalex.sh if [ ! -z $1 ] then proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1" else proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu" fi eval $proccomm
L'extrait de code ci-dessus accepte un argument, qui est le modèle d'une commande grep. Cela répertorie les processus dans l'ordre d'utilisation du processeur et greps pour un modèle particulier donné dans la ligne de commande.
Remarque : Cet article fait partie de notre série de tutoriels Bash en cours.
3. Exemple de commande de hachage bash
La commande hash maintient une table de hachage contenant les noms de chemin de la commande utilisée. Lorsque vous exécutez une commande, il recherche une commande dans la variable $PATH.
Mais si la commande est disponible dans la table de hachage, il la récupère à partir de là et l'exécute. La table de hachage maintient le nombre de résultats rencontrés pour chaque commande utilisée jusqu'à présent dans ce shell.
$ hash hits command 1 /usr/bin/cat 2 /usr/bin/ps 4 /usr/bin/ls
Vous pouvez supprimer une commande particulière d'une table de hachage à l'aide de l'option -d et de l'option -r pour réinitialiser la table de hachage complète.
$ hash -d cat $ hash hits command 2 /usr/bin/ps 4 /usr/bin/ls
4. Exemple de commande Bash pwd
pwd est une commande intégrée du shell pour imprimer le répertoire de travail actuel. Il renvoie essentiellement la valeur de la variable intégrée ${PWD}
$pwd /home/sasikala/bash/exercises $echo $PWD /home/sasikala/bash/exercises
5. Exemple de commande Bash en lecture seule
La commande readonly est utilisée pour marquer une variable ou une fonction en lecture seule, qui ne peut plus être modifiée.
$ cat readonly_ex.sh #!/bin/bash # Restricting an array as a readonly readonly -a shells=("ksh" "bash" "sh" "csh" ); echo ${#shells[@]} # Trying to modify an array, it throws an error shells[0]="gnu-bash" echo ${shells[@]} $ ./readonly_ex.sh 4 readonly_ex.sh: line 9: shells: readonly variable
6. Exemple de commande bash shift
La commande shift est utilisée pour décaler les paramètres positionnels à gauche d'un nombre N de fois et renomme la variable en conséquence après le décalage.
$ cat shift.sh #! /bin/bash while [ $# -gt 0 ] do case "$1" in -l) echo "List command" ls shift ;; -p) echo "Process command" ps -a shift ;; -t) echo "Hash Table command" hash shift ;; -h) echo "Help command" help shift ;; esac done $./shift.sh -l -t List command analysis break testing t1.sh temp Hash Table command hits command 1 /usr/bin/ls
7. Exemple de commande de test bash
La commande test évalue l'expression conditionnelle et renvoie zéro ou un en fonction de l'évaluation. Reportez-vous à la page de manuel de bash pour plus d'opérateurs de test.
#! /bin/bash if test -z $1 then echo "The positional parameter \$1 is empty" fi
8. Exemple de commande Bash getops
La commande getopts est utilisée pour analyser les arguments de ligne de commande donnés. Nous pouvons définir les règles pour les options, c'est-à-dire quelle option accepte les arguments et laquelle ne les accepte pas. Dans la commande getopts, si une option est suivie de deux-points, elle attend un argument pour cette option.
getopts fournit deux variables $OPTIND et $OPTARG qui ont respectivement l'index du paramètre suivant et les arguments d'option.
$ cat options.sh #! /bin/bash while getopts :h:r:l: OPTION do case $OPTION in h) echo "help of $OPTARG" help "$OPTARG" ;; r) echo "Going to remove a file $OPTARG" rm -f "$OPTARG" ;; esac done $ ./options.sh -h jobs help of jobs jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Lists the active jobs. The -l option lists process id's in addition to the normal information; the -p option lists process id's only.
9. Commande de déconnexion de Bash
Déconnexion intégrée utilisée pour quitter un shell en cours.
10. Exemple de commande bash umask
La commande umask définit un masque de création de mode fichier pour un processus en cours. Lorsqu'un utilisateur crée un fichier, son autorisation par défaut est basée sur la valeur définie dans umask. L'autorisation par défaut pour le fichier est 666, et elle sera masquée avec les bits umask lorsque l'utilisateur créera un fichier.
Pour plus de détails, veuillez consulter notre article Autorisations de fichiers et de répertoires.
Lorsque l'utilisateur crée un fichier, 666 est masqué par 022, donc l'autorisation de fichier par défaut serait 644.
$ umask 0022 $ > temporary $ ls -l temporary -rw-r--r-- 1 root root 4 Jul 26 07:48 temporary
11. Exemples de commande Bash set
set est une commande intégrée du shell, qui est utilisée pour définir et modifier les variables internes du shell. La commande set sans argument répertorie toutes les variables et leurs valeurs. La commande set est également utilisée pour définir les valeurs des paramètres de position.
$ set +o history # To disable the history storing. +o disables the given options. $ set -o history -o enables the history $ cat set.sh var="Welcome to thegeekstuff" set -- $var echo "\$1=" $1 echo "\$2=" $2 echo "\$3=" $3 $ ./set.sh $1=Welcome $2=to $3=thegeekstuff
12. Exemples de commandes Bash unset
unset intégré est utilisé pour définir la variable shell sur null. unset également utilisé pour supprimer un élément d'un tableau et
pour supprimer un tableau complet.
Pour plus de détails sur le tableau Bash, reportez-vous à notre article précédent 15 Opérations sur les tableaux Bash
$ cat unset.sh #!/bin/bash #Assign values and print it var="welcome to thegeekstuff" echo $var #unset the variable unset var echo $var $ ./unset.sh welcome to thegeekstuff
Dans l'exemple ci-dessus, après la désactivation, la variable "var" sera affectée d'une chaîne nulle.
13. Exemple de commande Bash let
let commandes est utilisée pour effectuer des opérations arithmétiques sur des variables shell.
$ cat arith.sh #! /bin/bash let arg1=12 let arg2=11 let add=$arg1+$arg2 let sub=$arg1-$arg2 let mul=$arg1*$arg2 let div=$arg1/$arg2 echo $add $sub $mul $div $ ./arith.sh 23 1 132 1
14. Exemple de commande Bash shopt
La commande intégrée shopt est utilisée pour définir et supprimer les options d'un shell. En utilisant cette commande, vous pouvez utiliser l'intelligence du shell.
$cat shopt.sh #! /bin/bash ## Before enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" shopt -s xpg_echo ## After enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" # Before disabling aliases alias l.='ls -l .' l. # After disabling aliases shopt -u expand_aliases l. $ ./shopt.sh WELCOME\n GEEKSTUF\n WELCOME GEEKSTUF total 3300 -rw------- 1 root root 1112 Jan 23 2009 anaconda-ks.cfg -r-xr-xr-x 1 root root 3252304 Jul 1 08:25 backup drwxr-xr-x 2 root root 4096 Jan 26 2009 Desktop shopt.sh: line 17: l.: command not found
Avant d'activer l'option xpg_echo, l'instruction echo ne développait pas les séquences d'échappement. "je." est aliasé à ls -l du répertoire courant. Après avoir désactivé l'option expand_aliases dans le shell, il n'a pas développé les alias, vous pourriez remarquer une erreur l. commande introuvable.
15. Exemple de commande Bash printf
Semblable à printf en langage C, bash printf intégré est utilisé pour formater les opérations d'impression.
Dans l'exemple 13, le script effectue une opération arithmétique sur deux entrées. Dans ce script au lieu de l'instruction echo, vous pouvez utiliser l'instruction printf pour imprimer la sortie formatée comme indiqué ci-dessous.
Dans arith.sh, remplacez l'instruction echo par cette instruction printf.
printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div $ ./arith.sh Addition=23 Subtraction=1 Multiplication=132 Division=1.000000