GNU/Linux >> Tutoriels Linux >  >> Linux

Commande set Linux et comment l'utiliser {9 exemples}

Présentation

L'set command est une commande shell Linux intégrée qui affiche et définit les noms et les valeurs des variables d'environnement shell et Linux. Sur les systèmes d'exploitation de type Unix, l'ensemble set les fonctions de commande dans le shell Bourne (sh ), shell C (csh ) et shell Korn (ksh ).

Dans ce didacticiel, vous apprendrez ce que le set est la commande et comment l'utiliser.

Prérequis

  • Un système exécutant Linux.
  • Accès à un terminal/ligne de commande.

Linux définit la syntaxe de commande

La syntaxe générale de l'ensemble set la commande est :

set [options] [arguments]

Options

Dans le cadre de l'ensemble set commande, [options] sont des paramètres ou des drapeaux définis ou non définis dans l'environnement du shell Bash. Utilisez-le pour influencer le comportement des scripts shell définis et aider à exécuter les tâches souhaitées.

  • Définissez une option en utilisant un signe moins (- ) suivi de l'option appropriée.
  • Désactivez une option en utilisant un signe plus (+ ) suivi de l'option appropriée.

Argumentation

[arguments] sont des paramètres de position et ils sont assignés dans l'ordre avec les paramètres suivants :

  • $1
  • $2
  • ...
  • $n

Ne pas spécifier d'options ou d'arguments entraîne l'impression de toutes les variables shell par la commande.

Valeurs de sortie

L'set commande a trois valeurs de sortie :

  • 0 . Marque une réussite.
  • 1 . Échec causé par un argument non valide.
  • 2 . Échec entraînant un message d'utilisation, généralement en raison de l'absence d'un argument.

Linux définit les options de commande

L'set La commande fournit une longue liste d'options qui peuvent être combinées.

La plupart des options ont un indicateur -o flag correspondant qui peut être utilisé pour invoquer l'option. Le tableau ci-dessous répertorie toutes les options et leur forme alternative respective en utilisant le -o flag syntaxe.

Options -o drapeaux Description
-a -o allexport Marque toutes les variables ou fonctions créées ou modifiées pour l'exportation.
-b -o notify Alerte l'utilisateur lors de la fin d'une tâche en arrière-plan.
-e -o errexit Ordonne à un shell de quitter si une commande échoue, c'est-à-dire si elle renvoie un état de sortie différent de zéro.
-f -o noglob Désactive la génération de nom de fichier (globbing).
-h -o hashall Recherche et enregistre les commandes de fonction lorsqu'une fonction est définie. Le -h l'option est activée par défaut.
-k -o keyword Place tous les arguments d'affectation dans l'environnement d'une commande, pas seulement ceux qui précèdent le nom de la commande.
-n -o noexec Lit les commandes mais ne les exécute pas.
-m -o monitor Affiche un message lorsqu'une tâche est terminée.
-p -o privileged Désactive le $ENV traitement de fichiers et importation de fonctions shell. Le -p L'option est activée par défaut lorsque les ID utilisateur réel et effectif ne correspondent pas. La désactiver définit l'uid et le gid effectifs sur les vrais uid et gid.
-t -o onecmd Lit une commande puis quitte.
-u -o nounset Traite les variables non définies ou indéfinies comme une erreur lors de la substitution (pendant l'expansion des paramètres). Ne s'applique pas aux paramètres spéciaux tels que le caractère générique * ou @ .
-v -o verbose Imprime les lignes d'entrée du shell lors de leur lecture.
-x -o xtrace Imprime les arguments de la commande pendant l'exécution.
-B -o braceexpand Effectue l'expansion des accolades de coque.
-C -o noclobber Empêche l'écrasement des fichiers réguliers existants par la redirection de sortie. Par défaut, Bash permet à la sortie redirigée d'écraser les fichiers existants.
-E -o errtrace Les fonctions du shell héritent de l'interruption ERR.
-H -o histexpand Active la substitution d'historique de style. L'option est activée par défaut lorsque le shell est interactif.
-P -o physical Empêche le lien symbolique de suivre lors de l'exécution de commandes.
-T -o functrace Les fonctions du shell héritent de l'interruption DEBUG.
-- n/a Assigne les arguments restants aux paramètres positionnels. S'il n'y a plus d'arguments restants, annule les paramètres positionnels.
- sans objet Assigne tous les arguments restants aux paramètres positionnels. Désactive le -x et -v option.
sans objet -o emacs Utilise une interface d'édition de ligne de style emacs.
sans objet -o history Active l'historique des commandes.
sans objet -o ignoreeof Le shell ne se ferme pas à la lecture de la fin du fichier.
sans objet -o interactive-comments Autorise les commentaires dans les commandes interactives.
sans objet -o nolog N'enregistre pas les définitions de fonction dans le fichier d'historique.
sans objet -o pipefail La valeur de retour d'un pipeline est le statut de la dernière commande qui avait un statut différent de zéro à la sortie. Si aucune commande n'avait un statut différent de zéro à la sortie, la valeur est zéro.
sans objet -o posix Entraîne Bash à correspondre à la norme lorsque l'opération par défaut diffère de la norme Posix.
sans objet -o vi Utilise une interface d'édition de ligne similaire à vi .

Exemples de commandes Linux set

Cette section répertorie des exemples des utilisations les plus courantes de l'ensemble set commande.

Utilisation de la commande set sans options

L'exécution de la commande sans options ni arguments génère une liste de tous les paramètres - les noms et les valeurs de toutes les variables et fonctions du shell. Comme la liste est très longue, vous pouvez la faire défiler en utilisant la page vers le haut et Page suivante clés.

Voici un exemple d'un set partiel sortie de la commande :

Débogage de scripts

L'set La commande est particulièrement pratique lorsque vous essayez de déboguer vos scripts. Utilisez le -x option avec le set commande pour voir quelle commande de votre script est exécutée après le résultat, ce qui vous permet de déterminer le résultat de chaque commande.

L'exemple suivant montre comment déboguer des scripts avec set -x . Suivez les étapes ci-dessous :

1. Exécutez set -x :

set -x

2. Utilisez votre éditeur de texte préféré (nous utilisons l'éditeur vi) pour créer un script. Nous avons créé une boucle simple qui nous permet de voir le -x effets des options :

x=10
while [ $x -gt 0 ]; do
         x=$[ $x-1 ]
         echo $x
         sleep 2
done

3. Assurez-vous de chmoder le script pour le rendre exécutable. Cette étape est toujours obligatoire avant d'exécuter un script . La syntaxe est :

chmod +x [script-name.sh]

4. Exécutez le script. La syntaxe est :

./[script-name.sh]

La sortie imprime une ligne à la fois, l'exécute, affiche le résultat s'il y en a un et passe à la ligne suivante.

Une autre façon d'activer le débogage consiste à placer le -x drapeau sur la ligne shebang du script :

#!/bin/bash -x

Exportation de scripts

Exportez automatiquement toute variable ou fonction créée à l'aide de -a option. L'exportation de variables ou de fonctions permet à d'autres sous-shells et scripts de les utiliser.

Activez l'exportation de script en exécutant la commande suivante :

set -a

L'exemple suivant montre comment fonctionne l'exportation de script. Suivez les étapes ci-dessous :

1. Créez un nouveau script à l'aide de l'éditeur de votre choix. Par exemple :

one=1
two=2
three=3
four=4
/bin/bash

Le /bin/bash l'argument marque le début d'un nouveau shell.

2. Vérifiez si le script fonctionne dans un nouveau shell :

echo $one $two $three $four

La sortie prouve que la fonction que nous avons créée a été exportée et fonctionne même lors du démarrage d'un nouveau shell.

Quitter lorsqu'une commande échoue

Utilisez le -e option pour demander à un script de quitter s'il rencontre une erreur lors de son exécution. L'arrêt d'un script partiellement fonctionnel permet d'éviter des problèmes ou des résultats incorrects.

Créez un script avec le contenu suivant pour tester cette option :

#!/bin/bash
set -e
cat nonexistingfile
echo "The end"

Dans l'exemple ci-dessus, le script rencontre une erreur en essayant d'afficher le contenu de nonexistingfile car ce fichier n'existe pas, provoquant sa fermeture à ce stade. Ainsi, l'echo final la commande n'est pas exécutée.

Prévenir la perte de données

Le paramètre par défaut de Bash consiste à écraser les fichiers existants. Cependant, en utilisant le -C L'option configure Bash pour ne pas écraser un fichier existant lors de la redirection de sortie à l'aide de > , >& , ou <> est redirigé vers ce fichier.

Par exemple :

Bash nous permet d'abord d'écraser le listing.txt dossier. Cependant, après avoir exécuté le set -C commande, Bash affiche un message indiquant qu'il ne peut pas écraser un fichier existant.

Signaler les variables inexistantes

Le paramètre par défaut dans Bash est d'ignorer les variables inexistantes et de travailler avec celles qui existent déjà. Utilisation du -u L'option empêche Bash d'ignorer les variables qui n'existent pas et lui fait signaler le problème.

Par exemple, le script suivant ne contient pas le set -u commande et Bash ignore que $var2 n'est pas défini.

#!/bin/bash
var1="123"
echo $var1 $var2

La sortie contient uniquement $var1 .

Cependant, changer le script et ajouter le set -u commande empêche Bash d'ignorer le problème et le signale :

#!/bin/bash
set -u
var1="123"
echo $var1 $var2

Définir les paramètres de position

L'set La commande peut également affecter des valeurs aux paramètres positionnels. Un paramètre positionnel est une variable shell dont la valeur est référencée à l'aide de la syntaxe suivante :

$[N]

Le [N] value est un chiffre indiquant la position du paramètre. Par exemple, $1 est le premier paramètre positionnel, $2 est le deuxième paramètre, etc.

Par exemple :

set first second third

L'exécution de la commande ci-dessus définit first pour correspondre au $1 paramètre positionnel, second à $2 , et third à $3 . Vérifiez ceci avec la commande echo :

echo $2

Annulez les paramètres de position en exécutant :

set --

Séparer les chaînes

Utilisez le set commande pour diviser les chaînes en fonction des espaces en variables distinctes. Par exemple, divisez les chaînes dans une variable appelée myvar , qui dit "Ceci est un test" .

myvar="This is a test"

set -- $myvar
echo $1
echo $2
echo $3
echo $4

Utilisez cette option pour extraire et filtrer les informations de la sortie d'une commande, similaire à ce que fait la commande awk.

Définir tous les indicateurs d'exportation et de notification

Le -o allexport flag vous permet d'exporter automatiquement toutes les variables définies par la suite, tandis que le -o notify indique au shell d'imprimer immédiatement les messages de fin de tâche.

Pour définir les drapeaux, exécutez :

set -o allexport -o notify

Dans l'exemple suivant, nous voyons que le shell vous avertit à la fin de la tâche en arrière-plan depuis l'exportation du script :


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Comment utiliser la commande d'écran Linux

  5. Comment utiliser la commande ldconfig sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Comment utiliser la commande Mkdir sous Linux

Comment utiliser la commande jobs sous Linux

Comment utiliser la commande screen sous Linux