Skip to main content

Linux - Commande Unix: bash

Ligne de commandes Linux - partie 2 - Commandes de base (Avril 2025)

Ligne de commandes Linux - partie 2 - Commandes de base (Avril 2025)
Anonim

La commande Linux Frapper est unshinterpréteur en langage de commande compatible avec l’application qui exécute les commandes lues à partir de l’entrée standard ou d’un fichier.Frapper intègre également des fonctionnalités utiles des coquilles Korn et C (ksh etcsh).

Options Bash

Outre les options de shell à un caractère documentées dans la description duensemble commande intégrée,frapper interprète les options suivantes lorsqu’il est appelé:

  • -c chaîne: Si la-c Si l'option est présente, les commandes sont lues depuis chaîne . S'il y a des arguments après la chaîne , ils sont affectés aux paramètres de position, en commençant par$0.
  • -je: Si la-je l'option est présente, le shell est interactif .
  • -l: Fairefrapper agir comme si elle avait été invoquée en tant que shell de connexion.
  • -r: Si la-r l'option est présente, le shell devient limité.
  • -s: Si la-s Si l'option est présente ou s'il ne reste aucun argument après le traitement de l'option, les commandes sont lues à partir de l'entrée standard. Cette option permet de définir les paramètres de position lors de l’appel d’un shell interactif.
  • -RÉ: Une liste de toutes les chaînes entre guillemets précédées de$ est imprimé sur la sortie standard. Ce sont les chaînes qui sont sujettes à la traduction de la langue lorsque les paramètres régionaux actuels ne sont pasC ouPOSIX. Cela implique le -n option; aucune commande ne sera exécutée.
  • - + O shopt_option : shopt_option est l’une des options de shell acceptées par leshopt intégré. Si shopt_option est présent,-O définit la valeur de cette option, et+ O le désactive. Si shopt_option n'est pas fourni, les noms et les valeurs des options du shell acceptées parshopt sont imprimés sur la sortie standard. Si l'option d'invocation est + O, la sortie est affichée dans un format qui peut être réutilisé comme entrée.
  • --: UNE-- signale la fin des options et désactive le traitement ultérieur des options. Tous les arguments après la-- sont traités comme des noms de fichiers et des arguments. Un argument de- est équivalent à--.

Frapper interprète également un certain nombre d'options multi-caractères. Ces options doivent apparaître sur la ligne de commande avant les options à caractère unique pour être reconnues:

  • --dump-po-strings: Équivalent à-RÉ, mais la sortie est dans le GNU gettext po (objet portable) format de fichier.
  • --dump-strings: Équivalent à-RÉ.
  • --Aidez-moi: Affiche un message d'utilisation sur la sortie standard et quitte avec succès.
  • --init-file: fichier et --rcfile fichier : Exécute les commandes de fichier au lieu du fichier d'initialisation personnel standard ~ / .bashrc si le shell est interactif.
  • --s'identifier: Équivalent à-l.
  • --noediting: Ne pas utiliser le GNUreadline bibliothèque pour lire les lignes de commande lorsque le shell est interactif.
  • --Pas de profil: Ne lisez pas le fichier de démarrage à l'échelle du système / etc / profile ou l'un des fichiers d'initialisation personnels ~ / .bash_profile , ~ / .bash_login , ou ~ / .profile . Par défaut,frapper lit ces fichiers quand il est appelé en tant que shell de connexion.
  • --norc: Ne pas lire et exécuter le fichier d'initialisation personnel ~ / .bashrc si le shell est interactif. Cette option est activée par défaut si le shell est appelé en tant quesh.
  • --posix: Changer le comportement defrapper où l'opération par défaut diffère de la norme POSIX pour correspondre à la norme ( mode posix ).
  • --limité: La coquille devient restreinte.
  • --rpm-requiert: Produisez la liste des fichiers requis pour l'exécution du script shell. Ceci implique '-n' et est soumis aux mêmes limitations que la vérification d'erreur de temps de compilation; Les backticks, les tests et les évaluations ne sont pas analysés, de sorte que certaines dépendances peuvent être omises.
  • --verbeux: Équivalent à-v.
  • --version: Afficher les informations de version pour cette instance defrapper sur la sortie standard et quitter avec succès.

Arguments

Si les arguments restent après le traitement de l’option et que ni le-c ni le-s Si l'option a été fournie, le premier argument est supposé être le nom d'un fichier contenant des commandes shell. Si frapper est invoqué de cette manière,$0 est défini sur le nom du fichier et les paramètres de position sur les arguments restants.Frapper lit et exécute les commandes de ce fichier; puis quitte.FrapperLe statut de sortie de est le statut de sortie de la dernière commande exécutée dans le script. Si aucune commande n'est exécutée, le statut de sortie est 0. On tente d'abord d'ouvrir le fichier dans le répertoire en cours. Si aucun fichier n'est trouvé, le shell effectue une recherche dans les répertoires.CHEMIN pour le script.

Invocation

UNE shell de connexion est celui dont le premier caractère de l'argument zéro est un-, ou on a commencé avec le--s'identifier option.

Un interactif shell est un démarré sans arguments non-option et sans le-c option dont l'entrée et la sortie standard sont toutes les deux connectées à des terminaux comme déterminé par est gras (3), ou un a commencé avec le-je option.PS1 est réglé et $- inclut si bash est interactif, permettant à un script shell ou à un fichier de démarrage de tester cet état.

Les paragraphes suivants décrivent commentfrapper exécute ses fichiers de démarrage. Si l'un des fichiers existe mais ne peut pas être lu,frapper rapporte une erreur. Les tildes sont développées dans les noms de fichiers comme décrit dans Tilde Expansion.

Quandfrapper est appelé en tant que shell de connexion interactif ou en tant que shell non interactif avec le--s'identifier option, il commence par lire et exécuter les commandes du fichier / etc / profile , si ce fichier existe. Après avoir lu ce fichier, il cherche ~ / .bash_profile , ~ / .bash_login , et ~ / .profile , dans cet ordre, et lit et exécute les commandes du premier qui existe et est lisible. le--Pas de profil Cette option peut être utilisée au démarrage du shell pour empêcher ce comportement.

Lorsqu'un shell de connexion se termine,frapper lit et exécute les commandes du fichier ~ / .bash_logout , s'il existe.

Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré,frapper lit et exécute les commandes de ~ / .bashrc , si ce fichier existe. Cela peut être inhibé en utilisant le--norc option. le--rcfile fichier l'option forcerafrapper lire et exécuter les commandes de fichier au lieu de ~ / .bashrc .

Quandfrapper est démarré de manière non interactive - pour exécuter un script shell, par exemple - il recherche la variableBASH_ENV dans l'environnement, développe sa valeur si elle y apparaît et utilise la valeur développée comme nom d'un fichier à lire et à exécuter.Frapper se comporte comme si la commande suivante avait été exécutée:

if -n "$ BASH_ENV"; puis . "$ BASH_ENV"; Fi

mais la valeur de laCHEMIN variable n'est pas utilisé pour rechercher le nom du fichier.

Sifrapper est appelé avec le nomsh, il essaie d’imiter le comportement au démarrage des versions historiques desh aussi près que possible, tout en respectant le standard POSIX. Lorsqu’il est appelé en tant que shell de connexion interactif ou non interactif avec le--s'identifier option, il tente d’abord de lire et d’exécuter les commandes de / etc / profile et ~ / .profile , dans cet ordre. le--Pas de profil Cette option peut être utilisée pour empêcher ce comportement. Lorsqu'il est appelé en tant que shell interactif avec le nom sh, frapper cherche la variableENV, développe sa valeur si elle est définie et utilise la valeur développée comme nom d'un fichier à lire et à exécuter. Depuis un shell appelésh ne tente pas de lire et d’exécuter des commandes à partir d’autres fichiers de démarrage, le--rcfile l'option n'a pas d'effet. Un shell non interactif appelé avec le nomsh ne tente pas de lire d'autres fichiers de démarrage. Quand invoqué commesh, frapper entre dans posix mode après la lecture des fichiers de démarrage.

Quandfrapper est commencé dans posix mode, comme avec le--posix option de ligne de commande, il suit la norme POSIX pour les fichiers de démarrage. Dans ce mode, les shells interactifs développent laENV les variables et les commandes sont lues et exécutées à partir du fichier dont le nom est la valeur développée. Aucun autre fichier de démarrage n'est lu.

Frapper tente de déterminer quand il est exécuté par le démon de shell distant, généralement rshd . Si frapper détermine qu'il est géré par rshd , il lit et exécute les commandes de ~ / .bashrc , si ce fichier existe et est lisible. Il ne le fera pas s'il est appelésh. le--norc Cette option peut être utilisée pour empêcher ce comportement et la--rcfile Cette option peut être utilisée pour forcer la lecture d’un autre fichier, mais rshd n’appelle généralement pas le shell avec ces options et ne permet pas leur spécification.

Si le shell est démarré avec l’identifiant de l’utilisateur effectif (groupe) différent de l’identifiant de cet utilisateur (groupe) réel, et que le-p option n'est pas fournie, aucun fichier de démarrage n'est lu, les fonctions du shell ne sont pas héritées de l'environnement, laCOQUILLAGES La variable, si elle apparaît dans l'environnement, est ignorée et l'ID utilisateur effectif est défini sur l'ID utilisateur réel. Si la-p Si l'option est fournie à l'invocation, le comportement au démarrage est identique, mais l'ID utilisateur effectif n'est pas réinitialisé.

Définitions

Les définitions suivantes sont utilisées dans le reste de ce document:

  • Blanc: Un espace ou une tabulation.
  • Mot: Une séquence de caractères considérée comme une seule unité par le shell. Aussi connu comme un jeton.
  • prénom: UNE mot composé uniquement de caractères alphanumériques et de traits de soulignement et commençant par un caractère alphabétique ou un trait de soulignement. Aussi appelé unidentifiant.
  • Métacaractère: Un caractère qui, lorsqu'il est non cité, sépare les mots. L'un des suivants:| &; () <> onglet espace
  • Opérateur de contrôle: UNE jeton qui remplit une fonction de contrôle. C'est l'un des symboles suivants: || & && ; ;; ( ) |

Mots réservés

Mots réservés sont des mots qui ont une signification particulière pour la coquille. Les mots suivants sont reconnus comme réservés lorsque non cités et soit le premier mot d’une commande simple, soit le troisième mot d’un motCasoupour commander:

! case fait elif else esac fi pour la fonction si dans sélectionner puis jusqu'à tout le temps {} temps

Shell Grammar: Commandes simples

UNE commande simple est une séquence d’affectations de variables facultatives suivie deblancmots et redirections séparés par un opérateur de contrôle . Le premier mot spécifie la commande à exécuter et est passé comme argument zéro. Les mots restants sont passés en tant qu'arguments à la commande appelée.

La valeur de retour d'un commande simple est son statut de sortie, ou 128+ n si la commande est terminée par un signal n .

Pipelines

UNE pipeline est une séquence d'une ou plusieurs commandes séparées par le caractère|. Le format d'un pipeline est temps -p ! commander | commande2 … .

La sortie standard de commander est connecté via un tuyau à l'entrée standard de commande2 . Cette connexion est effectuée avant toute redirection spécifiée par la commande.

Si le mot réservé! précède un pipeline, l’état de sortie de ce pipeline est le NON logique de l’état de sortie de la dernière commande. Sinon, l'état du pipeline est l'état de sortie de la dernière commande. Le shell attend la fin de toutes les commandes du pipeline avant de renvoyer une valeur.

Si latemps Un mot réservé précède un pipeline. Le temps écoulé, ainsi que le temps utilisateur et système consommé par son exécution, sont signalés à la fin du pipeline. le-p L'option change le format de sortie en celui spécifié par POSIX. leFORMAT DE L'HEURE variable peut être défini sur une chaîne de format qui spécifie comment les informations de minutage doivent être affichées.

Chaque commande dans un pipeline est exécutée en tant que processus séparé (dans un sous-shell, par exemple).

Des listes

UNE liste est une séquence d'un ou plusieurs pipelines séparés par l'un des opérateurs;, &, &&, ou||et éventuellement terminé par l'un des;, &, ou.

Parmi ces opérateurs de liste,&& et|| ont la même préséance, suivis de; et&, qui ont la même préséance.

Une séquence d'une ou plusieurs nouvelles lignes peut apparaître dans un liste au lieu d'un point-virgule pour délimiter les commandes.

Si une commande est terminée par l'opérateur de contrôle&, le shell exécute la commande dans le Contexte dans un sous-shell. Le shell n’attend pas la fin de la commande et le statut de retour est 0. Les commandes séparées par un; sont exécutés séquentiellement; le shell attend que chaque commande se termine à son tour. Le statut de retour est le statut de sortie de la dernière commande exécutée.

Les opérateurs de contrôle&& et|| désignent respectivement les listes AND et les listes OR. Une liste AND a la forme

commande1 && commande2

commande2 est exécuté si et seulement si commande1 renvoie un état de sortie de zéro.

Une liste OU a la forme

commande1 || commande2

commande2 est exécuté si et seulement si commande1 renvoie un statut de sortie non nul. Le statut de retour des listes AND et OR est le statut de sortie de la dernière commande exécutée dans la liste.

Commandes composées

UNE commande composée est l'un des suivants:

(liste) : liste est exécuté dans un sous-shell. Les affectations de variables et les commandes intégrées qui affectent l'environnement du shell ne restent pas en vigueur une fois la commande terminée. Le statut de retour est le statut de sortie de liste .

{ liste; } : liste est simplement exécuté dans l'environnement shell actuel. liste doit être terminé par une nouvelle ligne ou un point-virgule. Ceci est connu comme un commande de groupe . Le statut de retour est le statut de sortie de liste . Notez que contrairement aux métacaractères( et), { et} sont mots réservés et doit se produire lorsqu'un mot réservé est autorisé à être reconnu. Puisqu'ils ne provoquent pas une coupure de mots, ils doivent être séparés de liste par des espaces.

((expression)) : Le expression est évalué selon les règles décrites sous Évaluation arithmétique. Si la valeur de l'expression est non nulle, le statut de retour est 0; sinon le statut de retour est 1. Cela correspond exactement àlaisser ' expression '.

expression : Renvoie un statut de 0 ou 1 en fonction de l'évaluation de l'expression conditionnelle expression . Les expressions sont composées des primaires décrites ci-dessous sous Expressions conditionnelles. Le fractionnement des mots et l’extension des noms de chemins ne sont pas effectués sur les mots entre les mots. et; Des extensions tilde, des paramètres et variables, des extensions arithmétiques, des substitutions de commandes, des substitutions de processus et des suppressions de devis sont effectuées.

Quand le== et!= des opérateurs sont utilisés, la chaîne située à droite de l'opérateur est considérée comme un motif et correspond selon les règles décrites dansCorrespondance de modèle. La valeur de retour est 0 si la chaîne correspond ou ne correspond pas au modèle, respectivement, et 1 sinon. Toute partie du motif peut être citée pour le forcer à correspondre sous forme de chaîne.

Les expressions peuvent être combinées à l'aide des opérateurs suivants, classés par ordre de priorité décroissant:

  • (expression): Retourne la valeur de expression . Cela peut être utilisé pour remplacer la priorité normale des opérateurs.
  • ! expressio n: Vrai si expression c'est faux.
  • expression1 && expression2 : Vrai si les deux expression1 et expression2 sont vrai.
  • expression1 || expression2 : Vrai si non expression1 ou expression2 est vrai.

le&& et|| les opérateurs n'évaluent pas expression2 si la valeur de expression1 est suffisant pour déterminer la valeur de retour de l'expression conditionnelle entière.

  • pour prénom dans mot ; faire liste ; terminé: La liste de mots suivantdans est développé, générant une liste d'éléments. La variable prénom est mis à chaque élément de cette liste, et liste est exécuté à chaque fois. Si ladans mot est omis, lepour commande exécute liste une fois pour chaque paramètre de position défini. Le statut de retour est le statut de sortie de la dernière commande exécutée. Si l'expansion des éléments suivantsdans résulte en une liste vide, aucune commande n'est exécutée et le statut de retour est 0.
  • pour (( expr1 ; expr2 ; expr3 )) ; faire liste ; terminé: Tout d'abord, l'expression arithmétique expr1 est évalué selon les règles décrites sousÉvaluation arithmétique. L'expression arithmétique expr2 est ensuite évalué à plusieurs reprises jusqu'à ce qu'il évalue à zéro. Chaque fois expr2 évalue à une valeur différente de zéro, liste est exécuté et l'expression arithmétique expr3 est évalué. Si une expression est omise, elle se comporte comme si sa valeur était 1. La valeur de retour est le statut de sortie de la dernière commande de liste qui est exécuté ou faux si l'une des expressions est invalide.
  • sélectionner prénom dans mot ; faire liste ; terminé: La liste des mots suivantsdans est développé, générant une liste d'éléments. L'ensemble de mots développés est imprimé sur l'erreur standard, chacun étant précédé d'un nombre. Si ladans mot est omis, les paramètres de position sont imprimés. le PS3 L’invite s’affiche et une ligne est lue à partir de l’entrée standard. Si la ligne est constituée d’un nombre correspondant à l’un des mots affichés, la valeur de prénom est réglé sur ce mot. Si la ligne est vide, les mots et l'invite s'affichent à nouveau. Si EOF est lu, la commande se termine. Toute autre valeur lue cause prénom être mis à null. La ligne lue est enregistrée dans la variableRÉPONDRE. le liste est exécuté après chaque sélection jusqu'à ce qu'unPause commande est exécutée. Le statut de sortie desélectionner est l'état de sortie de la dernière commande exécutée dans liste , ou zéro si aucune commande n'a été exécutée.
  • Cas mot dans ( modèle | modèle : UNECas la commande se développe d'abord mot , et essaie de le faire correspondre à chaque modèle à son tour, en utilisant les mêmes règles de correspondance que pour l'expansion du nom de chemin. Quand une correspondance est trouvée, le correspondant liste est exécuté. Après le premier match, aucun autre match n'est tenté. Le statut de sortie est zéro si aucun motif ne correspond. Sinon, il s'agit du statut de sortie de la dernière commande exécutée dans liste .
  • si liste ; puis liste; et elif liste ; puis liste ; … autre liste ; Fi: lesi liste est exécuté. Si son statut de sortie est zéro, lepuis liste est exécuté. Sinon, chacun elif liste est exécuté à son tour, et si son état de sortie est zéro, la valeur correspondantepuis liste est exécuté et la commande se termine. Sinon, leautre liste est exécuté, si présent. L'état de sortie est l'état de sortie de la dernière commande exécutée ou zéro si aucune condition n'est vérifiée.
  • tandis que liste ; faire liste ; terminé et jusqu'à ce que liste ; faire liste ; terminé: Letandis que commande exécute en permanence lefaire liste aussi longtemps que la dernière commande liste renvoie un état de sortie de zéro. lejusqu'à ce que la commande est identique à latandis que commande, sauf que le test est annulé; lafaire liste est exécuté aussi longtemps que la dernière commande liste renvoie un statut de sortie non nul. Le statut de sortie dutandis que etjusqu'à ce que commandes est l'état de sortie de la dernièrefaire liste commande exécutée ou zéro si aucune n'a été exécutée.
  • une fonction prénom () { liste ; }: Ceci définit une fonction nommée prénom . le corps de la fonction est le liste des commandes entre {et}. Cette liste est exécutée à chaque fois prénom est spécifié comme le nom d'une commande simple. Le statut de sortie d'une fonction est le statut de sortie de la dernière commande exécutée dans le corps.

commentaires

Dans un shell non interactif ou un shell interactif dans lequel le commentaires_interactifs option aushopt builtin est activé, un mot commençant par# ce mot et tous les caractères restants sur cette ligne sont ignorés. Un shell interactif sans lecommentaires_interactifs l'option activée n'autorise pas les commentaires. le commentaires_interactifs L'option est activée par défaut dans les shells interactifs.

Citant

Citant est utilisé pour supprimer la signification particulière de certains caractères ou mots du shell. La citation peut être utilisée pour désactiver le traitement spécial pour les caractères spéciaux, empêcher que les mots réservés ne soient reconnus comme tels et empêcher le développement des paramètres.

Chacun de métacaractères énumérés ci-dessus sousDéfinitions a une signification spéciale pour le shell et doit être cité s'il veut se représenter lui-même.

Lorsque les installations d’extension de l’historique des commandes sont utilisées, la expansion de l'histoire personnage, généralement!, doit être cité pour empêcher l’extension de l’histoire.

Il existe trois mécanismes de citation: le caractère d'échappement , guillemets simples et doubles guillemets.

Un antislash non cité () est le caractère d'échappement . Il préserve la valeur littérale du caractère suivant, à l'exception de . Si un paire apparaît et la barre oblique inverse n'est pas elle-même citée, le est traité comme une continuation de ligne (c'est-à-dire qu'il est supprimé du flux d'entrée et effectivement ignoré).

Le fait de placer des caractères entre guillemets simples préserve la valeur littérale de chaque caractère entre guillemets. Un seul guillemet ne peut pas apparaître entre guillemets, même s'il est précédé d'une barre oblique inverse.

Le fait de placer des caractères entre guillemets doubles préserve la valeur littérale de tous les caractères compris entre guillemets, à l'exception de$, ', et. Les personnages$ et' conserver leur signification particulière entre guillemets doubles. La barre oblique inverse ne conserve sa signification particulière que si elle est suivie de l'un des caractères suivants:$, ', ', , ou. Une citation double peut être citée entre guillemets en la faisant précéder d'une barre oblique inverse.

Les paramètres spéciaux* et@ ont une signification particulière entre guillemets.

Mots de la forme$' chaîne 'sont traités spécialement. Le mot s'étend à chaîne , avec des caractères d'échappement avec une barre oblique inversée remplacés comme spécifié par la norme ANSI C. Les séquences d'échappement de barre oblique inverse, si elles sont présentes, sont décodées comme suit:

  • une: alerte (cloche)
  • b: retour arrière
  • e: un personnage d'évasion
  • F: formulaire d'alimentation
  • n: nouvelle ligne
  • r: retour chariot
  • t: onglet horizontal
  • v: onglet vertical
  • \: barre oblique inverse
  • ': simple citation
  • nnn : le caractère de huit bits dont la valeur est la valeur octale nnn (un à trois chiffres)
  • X HH : le caractère de huit bits dont la valeur est la valeur hexadécimale HH (un ou deux chiffres hexadécimaux)
  • c X : un contrôle- X personnage

Le résultat étendu est présenté entre guillemets simples, comme si le signe dollar n'avait pas été présent.

Une chaîne entre guillemets précédée d’un signe dollar ($) entraînera la traduction de la chaîne en fonction des paramètres régionaux actuels. Si la locale actuelle estC ouPOSIX, le signe dollar est ignoré. Si la chaîne est traduite et remplacée, le remplacement est cité en double.

Paramètres

UNE paramètre est une entité qui stocke des valeurs. Ça peut être un prénom , un numéro ou l’un des caractères spéciaux répertoriés sousParamètres spéciaux. Aux fins de la coquille, un variable est un paramètre désigné par un prénom . Une variable a valeur et zéro ou plus les attributs . Les attributs sont attribués à l'aide dudéclarer commande intégrée.

Un paramètre est défini si une valeur lui a été attribuée. La chaîne nulle est une valeur valide. Une fois qu'une variable est définie, elle peut être désactivée uniquement à l'aide de la touchenon fixé commande intégrée.

UNE variable peut être attribué par une déclaration de la forme: prénom = valeur

Si valeur n'est pas donné, la variable est assignée à la chaîne nulle. Tout valeurs subissez le développement de tilde, le développement de paramètres et de variables, le remplacement de commandes, le développement arithmétique et la suppression de devis. Si la variable a saentier ensemble d'attributs, puis valeur est sujet à une expansion arithmétique même si l'extension $ ((…)) n'est pas utilisée. Le fractionnement de mots n'est pas effectué, à l'exception de'$@' comme expliqué sousParamètres spéciaux. L'élargissement du chemin d'accès n'est pas effectué. Les instructions d’affectation peuvent également apparaître comme arguments de ladéclarer, composer, exportation, lecture seulement, et local commandes intégrées.

Paramètres de position

UNE paramètre de position est un paramètre désigné par un ou plusieurs chiffres, autre que le seul chiffre 0. Les paramètres positionnels sont attribués à partir des arguments du shell lorsqu’il est appelé, et peuvent être réaffectés à l’aide de la touche.ensemble commande intégrée. Les paramètres de position ne peuvent pas être affectés à des instructions d'affectation. Les paramètres de position sont temporairement remplacés lorsqu'une fonction shell est exécutée.

Lorsqu'un paramètre de position composé de plusieurs chiffres est développé, il doit être placé entre accolades.

Paramètres spéciaux

Le shell traite plusieurs paramètres spécialement. Ces paramètres ne peuvent être référencés que; leur assignation n'est pas autorisée.

  • *: Étend les paramètres de position, en commençant par un. Lorsque le développement se fait entre guillemets doubles, il se développe en un seul mot avec la valeur de chaque paramètre séparée par le premier caractère du caractère.IFS variable spéciale. C'est, "$*" est équivalent à "$1 c $2 c ", où c est le premier caractère de la valeur duIFS variable. SiIFS est non défini, les paramètres sont séparés par des espaces. SiIFS est null, les paramètres sont joints sans séparateurs intermédiaires.
  • @: Étend les paramètres de position, en commençant par un. Lorsque le développement se produit entre guillemets doubles, chaque paramètre se développe en un mot distinct. C'est, "$@" est équivalent à "$1' '$2"… quand il n'y a pas de paramètres de position,"$@" et$@développer à rien (ils sont supprimés).
  • #: Étend le nombre de paramètres de position en décimal.
  • ?: Étend le statut du pipeline de premier plan exécuté le plus récemment.
  • -: Développe les drapeaux d’option actuels spécifiés lors de l’appel, par leensemble commande intégrée ou celles définies par le shell lui-même, telles que-je option.
  • $: Développe l'ID de processus du shell. Dans un sous-shell (), il se développe en identifiant de processus du shell actuel, pas du sous-shell.
  • !: Développe l'ID de processus de la commande d'arrière-plan (asynchrone) exécutée le plus récemment.
  • 0: Étend le nom du shell ou du script shell. Ceci est défini lors de l'initialisation du shell. Sifrapper est appelé avec un fichier de commandes,$0 est défini sur le nom de ce fichier. Sifrapper est commencé avec le-c option, alors$0 est défini sur le premier argument après la chaîne à exécuter, s'il en existe un. Sinon, il est défini sur le nom du fichier utilisé pour appelerfrapper, comme donné par l'argument zéro.
  • _: Au démarrage du shell, définissez le nom de fichier absolu du shell ou du script en cours d'exécution, tel qu'il est transmis dans la liste des arguments. Par la suite, développe le dernier argument de la commande précédente, après le développement. Définissez également le nom de fichier complet de chaque commande exécutée et placée dans l'environnement exporté vers cette commande. Lors de la vérification du courrier, ce paramètre contient le nom du fichier courrier en cours de vérification.

Variables Shell

Les variables suivantes sont définies par le shell:

FRAPPER: Étend le nom de fichier complet utilisé pour appeler cette instance defrapper.

BASH_VERSINFO: Une variable de tableau en lecture seule dont les membres contiennent des informations de version pour cette instance de frapper. Les valeurs attribuées aux membres du tableau sont les suivantes:

  • BASH_VERSINFO 0: Le numéro de version majeur (le Libération )
  • BASH_VERSINFO 1: Le numéro de version mineur (le version )
  • BASH_VERSINFO 2: le niveau de patch
  • BASH_VERSINFO 3: La version de compilation
  • BASH_VERSINFO 4: Le statut de la version ( beta1, par exemple)
  • BASH_VERSINFO 5: La valeur deMACHTYPE

BASH_VERSION: Se développe en une chaîne décrivant la version de cette instance defrapper.

COMP_CWORD: Un index dans$ {COMP_WORDS} du mot contenant la position actuelle du curseur. Cette variable est disponible uniquement dans les fonctions du shell appelées par les fonctions d’achèvement programmables.

COMP_LINE: La ligne de commande actuelle. Cette variable est disponible uniquement dans les fonctions du shell et les commandes externes invoquées par les fonctions d’achèvement programmables.

COMP_POINT: L'index de la position actuelle du curseur par rapport au début de la commande en cours. Si la position actuelle du curseur se trouve à la fin de la commande en cours, la valeur de cette variable est égale à$ {# COMP_LINE}. Cette variable est disponible uniquement dans les fonctions du shell et les commandes externes invoquées par les fonctions d’achèvement programmables.

COMP_WORDS: Une variable de tableau composée des mots individuels dans la ligne de commande actuelle. Cette variable est disponible uniquement dans les fonctions du shell appelées par les fonctions d’achèvement programmables.

DIRSTACK: Une variable de tableau contenant le contenu actuel de la pile de répertoires. Les répertoires apparaissent dans la pile dans l’ordre dans lequel ils sont affichés.dirs intégré. L’affectation aux membres de ce tableau peut être utilisée pour modifier des répertoires déjà dans la pile, mais lepushd etpopd Les commandes intégrées doivent être utilisées pour ajouter et supprimer des répertoires. L'affectation à cette variable ne changera pas le répertoire en cours. SiDIRSTACK non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

EUID: Étend à l'ID utilisateur effectif de l'utilisateur actuel, initialisé au démarrage du shell. Cette variable est en lecture seule.

FUNCNAME: Nom de toute fonction shell en cours d'exécution. Cette variable n'existe que lorsqu'une fonction shell est en cours d'exécution. Affectations àFUNCNAME n'a aucun effet et renvoie un statut d'erreur. SiFUNCNAME non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

GROUPES: Une variable de tableau contenant la liste des groupes dont l'utilisateur actuel est membre. Affectations àGROUPES n'a aucun effet et renvoie un statut d'erreur. SiGROUPES non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

HISTCMD: Le numéro ou l'index d'historique dans l'historique de la commande en cours. SiHISTCMD non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

NOM D'HOTE: Automatiquement défini sur le nom de l'hôte actuel.

HOSTTYPE: Défini automatiquement sur une chaîne décrivant de manière unique le type de machine sur laquellefrapper est en cours d'exécution. La valeur par défaut dépend du système.

LINENO: Chaque fois que ce paramètre est référencé, le shell substitue un nombre décimal représentant le numéro de ligne séquentiel actuel (commençant par 1) dans un script ou une fonction. Lorsqu'elle ne figure pas dans un script ou une fonction, la valeur substituée n'a pas nécessairement de sens. SiLINENO non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

MACHTYPE: Défini automatiquement sur une chaîne décrivant complètement le type de système sur lequelfrapper est en cours d'exécution dans la norme GNU cpu-company-system format. La valeur par défaut dépend du système.

OLDPWD: Le répertoire de travail précédent défini par leCD commander.

OPTARG: La valeur du dernier argument d’option traité par legetopts commande intégrée.

OPTIND: L'index du prochain argument à traiter par legetopts commande intégrée.

OSTYPE: Défini automatiquement sur une chaîne décrivant le système d'exploitation sur lequelfrapper est en cours d'exécution. La valeur par défaut dépend du système.

PIPESTATUS: Une variable de tableau contenant une liste des valeurs d'état de sortie des processus du pipeline de premier plan exécuté le plus récemment, pouvant ne contenir qu'une seule commande.

PPID: L'ID de processus du parent du shell. Cette variable est en lecture seule.

PWD: Le répertoire de travail actuel défini par leCD commander.

AU HASARD: Chaque fois que ce paramètre est référencé, un entier aléatoire compris entre 0 et 32767 est généré. La séquence de nombres aléatoires peut être initialisée en attribuant une valeur à AU HASARD. SiAU HASARD non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

RÉPONDRE: Positionné sur la ligne d’entrée lue par lelis Commande intégrée quand aucun argument n'est fourni.

SECONDES: Chaque fois que ce paramètre est référencé, le nombre de secondes écoulées depuis le retour de l'appel du shell est renvoyé. Si une valeur est assignée àSECONDES, la valeur renvoyée lors des références suivantes est le nombre de secondes écoulées depuis l'affectation plus la valeur attribuée. Si SECONDES non défini, il perd ses propriétés spéciales, même s'il est réinitialisé par la suite.

COQUILLAGES: Une liste d'options de shell activées, séparées par deux points. Chaque mot de la liste est un argument valide pour la-o option auensemble commande intégrée. Les options apparaissant dansCOQUILLAGES sont ceux rapportés comme sur parset -o. Si cette variable est dans l'environnement quandfrapper démarre, chaque option du shell de la liste sera activée avant la lecture des fichiers de démarrage. Cette variable est en lecture seule.

SHLVL: Incrémenté de un à chaque fois qu'une instance defrapper a démarré.

UID: Développe l'ID utilisateur de l'utilisateur actuel, initialisé au démarrage du shell. Cette variable est en lecture seule.

Les variables suivantes sont utilisées par le shell. Dans certains cas,frapper assigne une valeur par défaut à une variable; ces cas sont notés.

BASH_ENV: Si ce paramètre est défini quandfrapper exécute un script shell, sa valeur est interprétée comme un nom de fichier contenant des commandes permettant d’initialiser le shell, comme dans ~ / .bashrc . La valeur de BASH_ENV est soumis à une extension de paramètre, à une substitution de commande et à une expansion arithmétique avant d’être interprété comme un nom de fichier.CHEMIN n'est pas utilisé pour rechercher le nom du fichier résultant.

CDPATH: Le chemin de recherche pour leCD commander. Ceci est une liste de répertoires séparés par deux-points dans lesquels le shell recherche les répertoires de destination spécifiés parCD commander. Un exemple de valeur est ".: ~: / Usr".

COLONNES: Utilisé par lesélectionner commande intégrée pour déterminer la largeur du terminal lors de l’impression des listes de sélection. Réglage automatique à la réception d'un SIGWINCH.

Complètement: Une variable de tableau à partir de laquellefrapper lit les achèvements possibles générés par une fonction shell appelée par la fonction d'achèvement programmable.

FCEDIT: L'éditeur par défaut pour lefc commande intégrée.

FIGNORE: Liste de suffixes à ignorer séparés par des deux-points lors de l'achèvement du nom de fichier. Un nom de fichier dont le suffixe correspond à l'une des entrées deFIGNORE est exclu de la liste des noms de fichiers correspondants. Un exemple de valeur est ".o: ~".

GLOBIGNORE: Une liste de motifs séparés par des deux-points définissant l'ensemble des noms de fichiers à ignorer lors du développement du chemin. Si un nom de fichier correspondant à un modèle d’expansion de nom de chemin correspond également à l’un des modèlesGLOBIGNORE, il est supprimé de la liste des correspondances.

HISTCONTROL: Si défini sur une valeur de ignorer l'espace , lignes commençant par unespace caractère ne sont pas entrés dans la liste de l'historique. Si défini sur une valeur de ignoré , les lignes correspondant à la dernière ligne d’historique ne sont pas entrées. Une valeur de ignorer les deux combine les deux options. Si non défini ou s'il est défini sur une autre valeur que celles ci-dessus, toutes les lignes lues par l'analyseur sont enregistrées dans la liste d'historique, sous réserve de la valeur deHISTIGNORE. La fonction de cette variable est remplacée par HISTIGNORE. La deuxième ligne et les lignes suivantes d'une commande composée multiligne ne sont pas testées et sont ajoutées à l'historique quelle que soit la valeur deHISTCONTROL.

HISTFILE: Nom du fichier dans lequel l'historique des commandes est enregistré. La valeur par défaut est ~ / .bash_history . Si non défini, l'historique des commandes n'est pas sauvegardé lors de la fermeture d'un shell interactif.

HISTFILESIZE: Le nombre maximum de lignes contenues dans le fichier d'historique. Lorsqu'une valeur est affectée à cette variable, le fichier d'historique est tronqué, si nécessaire, pour ne pas contenir plus que ce nombre de lignes. La valeur par défaut est 500. Le fichier d'historique est également tronqué à cette taille après l'avoir écrit lors de la fermeture d'un shell interactif.

HISTIGNORE: Une liste de modèles séparés par des points utilisés pour décider des lignes de commande à enregistrer dans la liste d'historique. Chaque motif est ancré au début de la ligne et doit correspondre à la ligne complète (non implicite).*'est ajouté). Chaque modèle est testé par rapport à la ligne après les vérifications spécifiées parHISTCONTROL sont appliqués. En plus des caractères de correspondance de modèle de shell normaux, '&'correspond à la ligne d'historique précédente. '&'peut être échappé en utilisant une barre oblique inverse; la barre oblique inverse est supprimée avant de tenter une correspondance. La deuxième ligne et les lignes suivantes d'une commande composée multiligne ne sont pas testées et sont ajoutées à l'historique quelle que soit la valeur deHISTIGNORE.

HISTSIZE: Le nombre de commandes à retenir dans l'historique des commandes. La valeur par défaut est 500.

MAISON: Le répertoire de base de l'utilisateur actuel; l'argument par défaut pour laCD commande intégrée. La valeur de cette variable est également utilisée lors du développement du tilde.

HOSTFILE: Contient le nom d'un fichier au même format que / etc / hosts cela devrait être lu lorsque le shell doit compléter un nom d'hôte. La liste des complétions possibles du nom d'hôte peut être modifiée pendant l'exécution du shell. la prochaine fois que l'achèvement du nom d'hôte est tenté après la modification de la valeur,frapper ajoute le contenu du nouveau fichier à la liste existante. Si HOSTFILE est défini, mais n'a aucune valeur,frapper tente de lire / etc / hosts pour obtenir la liste des complétions possibles du nom d'hôte. QuandHOSTFILE n'est pas défini, la liste des noms d'hôte est effacée.

IFS: Le Séparateur de champ interne est utilisé pour la division des mots après expansion et la division des lignes en mots avec lelis commande intégrée. La valeur par défaut est "''.

IGNOREEOF: Contrôle l’action d’un shell interactif à la réception d’un messageEOF caractère comme seule entrée. Si défini, la valeur est le nombre de fois consécutivesEOF caractères qui doivent être saisis en tant que premiers caractères d'une ligne de saisie avantfrapper sorties. Si la variable existe mais n’a pas de valeur numérique ou n’a pas de valeur, la valeur par défaut est 10. Si elle n’existe pas,EOF signifie la fin de l'entrée dans le shell.

INPUTRC: Le nom du fichier pourreadline fichier de démarrage, en remplaçant la valeur par défaut de ~ / .inputrc .

LANG: Utilisé pour déterminer la catégorie de paramètres régionaux pour toute catégorie non spécifiquement sélectionnée avec une variable commençant parLC_.

LC_ALL: Cette variable remplace la valeur deLANG et tout autreLC_ variable spécifiant une catégorie de paramètres régionaux.

LC_COLLATE: Cette variable détermine l'ordre de classement utilisé lors du tri des résultats de l'expansion du nom de chemin et détermine le comportement des expressions de plage, des classes d'équivalence et des séquences de classement dans le développement du chemin et la correspondance de modèles.

LC_CTYPE: Cette variable détermine l'interprétation des caractères et le comportement des classes de caractères lors de l'expansion du chemin et du filtrage.

LC_MESSAGES: Cette variable détermine les paramètres régionaux utilisés pour traduire les chaînes entre guillemets précédées d'un$.

LC_NUMERIC: Cette variable détermine la catégorie de paramètres régionaux utilisée pour le formatage des nombres.

LIGNES: Utilisé par lesélectionner Commande intégrée pour déterminer la longueur de la colonne pour l’impression des listes de sélection. Réglage automatique à la réception d'un SIGWINCH.

COURRIER: Si ce paramètre est défini sur un nom de fichier et leCOURRIER la variable n'est pas définie,frapperinforme l'utilisateur de l'arrivée de courrier dans le fichier spécifié.

Courrier: Spécifie la fréquence (en secondes)frapper vérifie pour le courrier. La valeur par défaut est 60 secondes. Lorsqu'il est temps de vérifier le courrier, le shell le fait avant d'afficher l'invite principale. Si cette variable est non définie ou définie sur une valeur qui n'est pas un nombre supérieur ou égal à zéro, le shell désactive la vérification du courrier.

COURRIER: Une liste de noms de fichiers séparés par des points-point à vérifier pour le courrier. Le message à imprimer lorsque le courrier arrive dans un fichier particulier peut être spécifié en séparant le nom du fichier du message par un '?'. Lorsqu'il est utilisé dans le texte du message,$_ se développe au nom du fichier courrier actuel. Exemple:

MAILPATH = '/ var / mail / bfox? "Vous avez un mail": ~ / shell-mail? "$ _ Has mail!"'

Frapper fournit une valeur par défaut pour cette variable, mais l'emplacement des fichiers courrier de l'utilisateur utilisé dépend du système (/ var / mail /$ USER).

OPTERR: Si défini à la valeur 1,frapper affiche les messages d'erreur générés par legetopts commande intégrée.OPTERR est initialisé à 1 chaque fois que le shell est appelé ou qu'un script shell est exécuté.

CHEMIN: Le chemin de recherche pour les commandes. C'est une liste de répertoires séparés par deux-points dans lesquels le shell cherche des commandes. Le chemin par défaut dépend du système et est défini par l'administrateur qui installefrapper. Une valeur commune est "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :.".

POSIXLY_CORRECT: Si cette variable est dans l'environnement quandfrapper commence, la coquille entre mode posix avant de lire les fichiers de démarrage, comme si le--posix l'option d'invocation avait été fournie. S'il est défini pendant que le shell est en cours d'exécution,frapper permet mode posix comme si la commande set -o posix avait été exécuté.

PROMPT_COMMANDRemarque: Si défini, la valeur est exécutée sous forme de commande avant l'émission de chaque invite principale.

PS1: La valeur de ce paramètre est développée et utilisée comme chaîne d'invite principale. La valeur par défaut est " s- v $''.

PS2: La valeur de ce paramètre est développée comme avecPS1 et utilisé comme chaîne d'invite secondaire. La valeur par défaut est "> ''.

PS3: La valeur de ce paramètre est utilisée comme invite pour lasélectionner commander.

PS4: La valeur de ce paramètre est développée comme avecPS1, et la valeur est imprimée avant chaque commandefrapper s'affiche pendant une trace d'exécution. Le premier personnage dePS4 est répliqué plusieurs fois, si nécessaire,