GoGPT Best VPN GoSearch

Icône de favori OnWorks

yash - En ligne dans le Cloud

Exécutez yash dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande yash qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


yash - un shell de ligne de commande compatible POSIX

SYNOPSIS


Yash [choix...] [-] [opérandes...]

INTRODUCTION


Cela dit le dévouement, détermination et courage de anthère coquille (yash) est un shell de ligne de commande pour les systèmes d'exploitation de type UNIX. La coquille
est conforme à la norme POSIX.1-2008 (pour la plupart), et est en fait plus
conforme que les autres shells conformes à POSIX. De plus, il possède de nombreuses fonctionnalités qui sont
utilisé pour une utilisation interactive, comme l'historique des commandes et l'édition de la ligne de commande.

Ce programme peut être librement modifié et redistribué sous les termes de GNU General
Licence publique (Version 2). Utilisez le of ceci. Programme is tous at votre propre risque. is aucune
garantie et le auteur is pas Voyages pour tout conséquences causé by utilisé of ceci.
.

Ce manuel peut être librement modifié et redistribué sous les termes de Creative Commons
Attribution-ShareAlike 2.1 Japon.

Yash est développé et maintenu par 渡邊裕貴 (WATANABE Yuki) alias Magicant. Yash
Le projet de développement et la page d'accueil de Yash sont hébergés par OSDN.

INVOCATION


Lorsqu'il est appelé en tant que programme, yash effectue les étapes d'initialisation prédéfinies et
lit et exécute à plusieurs reprises des commandes. Arguments de ligne de commande donnés dans l'invocation
détermine comment le shell s'initialise et exécute les commandes.

Command en ligne arguments
La syntaxe des arguments de ligne de commande pour yash est conforme à POSIX. Comme défini dans POSIX,
les arguments sont séparés en Options et opérandes. Pour une explication plus détaillée sur
options et opérandes, voir Syntaxe des arguments de commande. Toutes les options doivent venir avant les opérandes.
L'interprétation des opérandes dépend des options spécifiées.

Lorsque vous spécifiez le -c (--ligne de commande), vous devez donner au moins un opérande. La coquille
interprète et exécute le premier opérande comme une chaîne de commande. Le deuxième opérande, le cas échéant,
sert à initialiser le 0 paramètre spécial. Les autres opérandes, s'il y en a, sont utilisés pour
initialiser les paramètres de position. Quand le -c (--ligne de commande) est spécifiée, le
shell ne lit aucun fichier ou l'entrée standard (à moins que le point intégré ne soit utilisé).

Si vous spécifiez le -s (--stdin), le shell lit l'entrée standard, interprète le
entrée en tant que commandes et les exécute. Tous les opérandes donnés sont utilisés pour initialiser le
paramètres positionnels. le 0 le paramètre spécial est initialisé avec le nom du shell
invoqué comme.

Si vous ne spécifiez ni le -c (--ligne de commande) ni -s (--stdin) option, le shell lit un fichier,
interprète le contenu du fichier comme des commandes et les exécute. Le premier opérande spécifie
le chemin du fichier. Les opérandes restants sont utilisés pour initialiser la position
paramètres. Si vous ne donnez aucun opérande, le shell lit l'entrée standard comme si le
-s (--stdin) est spécifiée.

Vous ne pouvez pas utiliser à la fois le -c (--ligne de commande) et -s (--stdin) options à la fois.

Si vous spécifiez soit le --Aidez-moi or --version option, le shell n'exécute jamais l'habituel
l'initialisation ou l'exécution de la commande. Au lieu de cela, il imprime simplement une brève utilisation (par --Aidez-moi) ou
informations de version (pour --version). Si la --version l'option est accompagnée de la -v
(--verbeux), le shell imprime également une liste des fonctionnalités optionnelles disponibles.

Si vous spécifiez le -i (--interactif), le shell passe en mode interactif. Si
vous spécifiez le +i (++interactif), à l'inverse, le shell n'entre jamais dans le
mode interactif.

Si vous spécifiez le -l (--connexion), le shell se comporte comme un shell de connexion.

Le manuel de formation --Pas de profil, --norcfile, --profilet --rcfile les options déterminent comment le shell est
initialisé (voir ci-dessous pour plus de détails).

En plus des options décrites ci-dessus, vous pouvez spécifier des options qui peuvent être spécifiées
à l'ensemble intégré.

Si le premier opérande est - et les options et les opérandes ne sont pas séparés par --, un
premier opérande est ignoré.

Initialisation of Yash
Yash s'initialise comme suit :

1. Yash analyse d'abord le nom sous lequel il a été invoqué. Si le nom commence par -, La coquille
se comporte comme un shell de connexion. Si le nom est sh (y compris des noms tels que / Bin / sh) et de
shell passe en mode POSIXly-correct.

2. Si aucun opérande n'est donné et que l'entrée standard et l'erreur standard sont toutes deux connectées
à un terminal, le shell passe en mode interactif à moins que le +i (++interactif)
est spécifiée.

3. Le contrôle des travaux est automatiquement activé dans un shell interactif à moins que le +m (++moniteur)
est spécifiée.

4. Yash lit et exécute les commandes à partir des fichiers suivants (sauf si les fichiers réels et
les ID utilisateur effectifs du processus shell sont différents ou le groupe réel et effectif
Les ID du processus shell sont différents) :

1. S'il se comporte comme un shell de connexion, le shell lit le fichier spécifié par le
--profil=nom de fichier option à moins que le --Pas de profil option est spécifiée ou le shell
est en mode POSIXly-correct.

Si la --profil=nom de fichier l'option n'est pas spécifiée, le shell lit ~/.yash_profile
par défaut.

2. Si en mode interactif, le shell lit le fichier spécifié par le
--rcfile=nom de fichier option à moins que le --norcfile est spécifiée.

Si la --rcfile=nom de fichier l'option n'est pas spécifiée, le shell

· lit ~/.yashrc par défaut s'il n'est pas en mode POSIXly-correct ; ou

· effectue une expansion des paramètres sur la valeur de la ENV variable d'environnement et
traite le résultat de l'expansion comme le nom du fichier à lire si dans le
Mode POSIX-correct.

Note
Yash ne lit jamais automatiquement / etc / profile, /etc/yashrc, ni ~ / .profile.

SYNTAXE


Le shell lit, analyse et exécute ligne de commande par ligne. S'il y a plus d'un
commande sur une ligne, toutes les commandes sont analysées avant d'être exécutées. Si une commande se poursuit
aux lignes suivantes, le shell lit suffisamment de lignes pour terminer la commande. Sur une syntaxe
erreur, le shell ne lit ni n'exécute plus de commandes.

Tokens et mots clés
Une commande est composée d'un ou plusieurs jetons. Dans la syntaxe du shell, un jeton est un mot qui
fait partie d'une commande. Normalement, les jetons sont séparés par des espaces blancs, c'est-à-dire l'espace ou
caractère de tabulation. Espaces blancs à l'intérieur d'une substitution de commande ou d'une expansion de paramètre,
cependant, ne séparez pas les jetons.

Les symboles suivants ont des significations particulières dans la syntaxe du shell et, dans la plupart des cas, séparent
jetons:

; & | < > ( ) [nouvelle ligne]

Les symboles suivants ne séparent pas les jetons, mais ont des significations syntaxiques :

$ ` \ " ' * ? [ # ~ = %

Les jetons suivants sont traités comme mots clés selon le contexte dans lequel ils
apparaître:

! { } case do done elif else esac fi
pour la fonction si dans alors jusqu'à ce que

Un jeton est traité comme un mot clé lorsque :

· c'est le premier jeton d'une commande,

· il suit un autre mot-clé (sauf maisons, pouret in), ou

· il s'agit d'un jeton non premier d'une commande et est censé être un mot-clé pour composer un
commande composée.

Si un jeton commence par #, puis le # et tous les caractères suivants jusqu'à la fin du
ligne sont traités comme un commentaire, qui est complètement ignoré dans l'analyse syntaxique.

Citations
Si vous souhaitez que les espaces blancs, les caractères de séparation ou les mots-clés décrits ci-dessus soient traités
en tant que caractères normaux, vous devez citer les caractères en utilisant des guillemets appropriés.
Les guillemets ne sont pas traités comme des caractères normaux à moins qu'ils ne soient eux-mêmes entre guillemets.
Vous pouvez utiliser les trois guillemets suivants :

· Une barre oblique inverse (\) cite un caractère qui suit immédiatement.

La seule exception concernant une barre oblique inverse est le cas où une barre oblique inverse est suivie d'un
nouvelle ligne. Dans ce cas, les deux personnages sont traités comme un en ligne continuation plutôt
qu'une nouvelle ligne entre guillemets. Les deux caractères sont supprimés de l'entrée et les deux
les lignes entourant la continuation de ligne sont concaténées en une seule ligne.

· Une paire de guillemets simples (') citez tous les caractères entre eux sauf un autre
citation simple. Notez que les retours à la ligne peuvent être entre guillemets à l'aide de guillemets simples.

· Guillemets doubles (") sont comme des guillemets simples, mais ils ont quelques exceptions :
L'expansion de paramètre, la substitution de commande et l'expansion arithmétique sont interprétées comme
habituel même entre guillemets doubles. Une barre oblique inverse entre guillemets doubles est traitée
entre guillemets uniquement lorsqu'il est suivi de $, `, ", \, ou une nouvelle ligne ; autre
les barres obliques inverses sont traitées comme des caractères normaux.

Alias
Les jetons qui composent une commande sont soumis à alias substitution. Un jeton qui correspond au
le nom d'un alias déjà défini est remplacé par la valeur de l'alias
avant que la commande ne soit analysée.

Les jetons contenant des guillemets ne sont pas remplacés par des alias puisqu'un nom d'alias ne peut pas
contenir des guillemets. Les mots-clés et les caractères séparateurs de commandes ne sont pas
alias-substitué non plus.

Il existe deux types d'alias : les alias normaux et les alias globaux. UNE Ordinaire alias peut seulement
substituer le premier jeton d'une commande tandis qu'un de défis alias peut remplacer n'importe quelle partie d'un
commander. Les alias globaux sont des extensions yash qui ne sont pas définies dans POSIX.

Si un jeton est remplacé par un alias par la valeur d'un alias normal qui se termine par un
whitespace, le jeton suivant est exceptionnellement soumis à une substitution d'alias pour normal
alias.

Les résultats de la substitution d'alias sont à nouveau soumis à la substitution d'alias pour d'autres
alias (mais pas pour les alias déjà appliqués).

Vous pouvez définir des alias à l'aide de la fonction intégrée alias et les supprimer à l'aide de la fonction intégrée unalias.

Simple commandes
Une commande qui ne commence pas par un jeton de mot-clé est un simple commander. Commandes simples
sont exécutés comme défini dans Exécution de commandes simples.

Si le premier et n'importe quel nombre de jetons suivants d'une commande simple ont la forme
prénom=Plus-value, elles sont interprétées comme des affectations de variables. Un nom de variable doit être composé de
un ou plusieurs alphabets, chiffres et/ou traits de soulignement (_) et ne doit pas commencer par un chiffre. le
le premier jeton qui n'est pas une affectation de variable est considéré comme un nom de commande et tous les
jetons suivants (qu'ils aient ou non la forme prénom=Plus-value) comme arguments de commande.

Une affectation variable de la forme var=(tokens) est interprété comme une affectation à un tableau.
Vous pouvez écrire n'importe quel nombre de jetons entre une paire de parenthèses. Les jetons peuvent être séparés
non seulement par des espaces et des tabulations, mais aussi par des retours à la ligne.

Pipelines
A pipeline est une séquence d'une ou plusieurs commandes simples, commandes composées et/ou
définitions de fonctions séparées par |.

Un pipeline qui a plus d'une sous-commande est exécuté en exécutant chaque sous-commande de
le pipeline dans un sous-shell simultanément. La sortie standard de chaque sous-commande sauf
la dernière est redirigée vers l'entrée standard de la sous-commande suivante. Le standard
l'entrée de la première sous-commande et la sortie standard de la dernière sous-commande ne sont pas
redirigé. L'état de sortie du pipeline est celui de la dernière sous-commande.

Un pipeline peut être préfixé par !, auquel cas l'état de sortie du pipeline est
renversé: le statut de sortie du pipeline est 1 si celui de la dernière sous-commande est 0, et 0
autrement.

Note
Lorsque l'exécution d'un pipeline se termine, au moins l'exécution du dernier
la sous-commande est terminée puisque l'état de sortie de la dernière sous-commande définit celui de
l'ensemble du pipeline. L'exécution d'autres sous-commandes, cependant, peut ne pas être terminée
ensuite. D'autre part, l'exécution du pipeline peut ne pas se terminer peu de temps après.
de la dernière sous-commande terminée car le shell peut choisir d'attendre l'exécution
d'autres sous-commandes pour terminer.

Note
La norme POSIX permet d'exécuter n'importe laquelle des sous-commandes dans le shell actuel plutôt
que les sous-shells, bien que yash ne le fasse pas.

Et / ou listes
An et/ou liste est une séquence d'un ou plusieurs pipelines séparés par && or ||.

Une liste et/ou est exécutée en exécutant certains des pipelines de manière conditionnelle. La première
pipeline est toujours exécuté. Les autres pipelines sont soit exécutés soit non exécutés
en fonction de l'état de sortie des pipelines précédents.

· Si deux canalisations sont séparées par && et l'état de sortie du premier pipeline est
zéro, le deuxième pipeline est exécuté.

· Si deux canalisations sont séparées par || et l'état de sortie du premier pipeline n'est pas
zéro, le deuxième pipeline est exécuté.

· Dans les autres cas, l'exécution de la liste et/ou se termine : la seconde et toute liste restante
les pipelines ne sont pas exécutés.

L'état de sortie d'une liste et/ou est celui du dernier pipeline qui a été exécuté.

Normalement, une liste et/ou doit être terminée par un point-virgule, une esperluette ou une nouvelle ligne. Voir
Séparateurs de commandes et commandes asynchrones.

Command séparateurs et asynchrone commandes
L'entrée entière du shell doit être composée d'un nombre quelconque de et/ou de listes séparées par un
point-virgule ou esperluette. Un point-virgule de fin peut être omis s'il est suivi de ;;, ),
ou une nouvelle ligne. Sinon, une liste et/ou doit être terminée par un point-virgule ou une esperluette.

Si une liste et/ou se termine par un point-virgule, elle est exécutée de manière synchrone : le shell
attend que la liste et/ou se termine avant d'exécuter la liste suivante et/ou. Si un et/ou
liste se termine par une esperluette, elle est exécutée de manière asynchrone : après l'exécution de
la liste et/ou est démarrée, la liste suivante et/ou est exécutée immédiatement. Un asynchrone
et/ou list est toujours exécuté dans un sous-shell et son état de sortie est zéro.

Si le shell ne contrôle pas le travail, l'entrée standard d'un asynchrone et/ou d'une liste
est automatiquement redirigé vers /dev/null. Gestionnaires de signaux de la liste et/ou pour la
Les signaux SIGINT et SIGQUIT sont réglés pour "ignorer" le signal afin que l'exécution de la
et/ou la liste ne peut pas être arrêtée par ces signaux. (En mode POSIX-correct, le standard
l'entrée est redirigée si et seulement si le shell est interactif, que le travail
le contrôle est activé. De plus, les signaux SIGINT et SIGQUIT sont ignorés même si le contrôle du travail est
au.)

Lorsque l'exécution d'un asynchrone et/ou d'une liste est lancée, le shell mémorise son
ID de processus. Vous pouvez obtenir l'ID en vous référant au ! paramètre spécial. Vous pouvez obtenir
l'état actuel et de sortie de la liste asynchrone ainsi qu'en utilisant les jobs et wait
intégrés.

Composant commandes
Les commandes composées vous permettent de contrôler par programmation l'exécution des commandes shell.

regroupement
Un regroupement est une liste de commandes qui est traitée comme une simple commande.

Syntaxe de regroupement normale
{ commander...; }

Syntaxe de regroupement de sous-shell
(commander...)

Le manuel de formation { et } les jetons sont des mots-clés, qui doivent être séparés des autres jetons. le ( et
) les jetons, cependant, sont des séparateurs spéciaux qui n'ont pas besoin d'être séparés.

Dans la syntaxe de regroupement normale, les commandes d'un regroupement sont exécutées dans le
coquille. Dans la syntaxe de regroupement de sous-shell, les commandes sont exécutées dans un nouveau sous-shell.

En mode POSIXly-correct, un regroupement doit contenir au moins une commande. Si la
shell n'est pas en mode POSIXly-correct, un groupement peut ne contenir aucune commande.

L'état de sortie d'un groupement est celui de la dernière commande du groupement. Si la
le groupement ne contient aucune commande, son état de sortie est celui de la dernière commande exécutée
avant le regroupement.

If commander
La commande if effectue un branchement conditionnel.

Syntaxe de base de la commande if
if condition...; puis corps...; fi

Syntaxe avec la clause else
if condition...; puis corps...; d'autre corps...; fi

Syntaxe avec la clause elif
if condition...; puis corps...; Elif condition...; puis corps...; fi

Syntaxe avec la clause elif
if condition...; puis corps...; Elif condition...; puis corps...; d'autre corps...; fi

Pour toutes les syntaxes, l'exécution d'une commande if commence par l'exécution de la
condition commandes qui suivent le if jeton. Si le statut de sortie de la condition
commandes est nul, la condition est considérée comme « vraie ». Dans ce cas, le corps
commandes qui suivent le puis jeton sont exécutés et l'exécution de la commande if
finitions. Si l'état de sortie des commandes de condition est différent de zéro, la condition est
considéré comme "faux". Dans ce cas, le condition commandes pour la prochaine clause elif
sont exécutés et l'état de sortie est testé de la même manière que ci-dessus. Si il n'y a pas
clause elif, la corps commandes qui suivent le d'autre jeton sont exécutés et le
l'exécution de la commande if se termine. S'il n'y a pas non plus de clause else, l'exécution
de la commande if se termine juste.

Une commande if peut avoir plus d'une clause elif-then.

L'état de sortie d'une commande if est celui de la corps commandes qui ont été exécutées. le
le statut de sortie est zéro si non corps commandes ont été exécutées, c'est-à-dire toutes les conditions
étaient fausses et il n'y avait pas de clause else.

Si et jusqu'au boucles
La boucle while et la boucle until sont des boucles simples avec condition.

Syntaxe de la boucle While
tout en condition...; do corps...; fait

Jusqu'à la syntaxe de la boucle
jusqu'au condition...; do corps...; fait

Si le shell n'est pas en mode POSIXly-correct, vous pouvez omettre le condition et/ou
corps commandes d'une boucle while/until.

L'exécution d'une boucle while est lancée en exécutant la commande condition commandes. Si la
état de sortie du condition commandes est zéro, le shell exécute le corps commandes
et revient à l'exécution de la condition commandes. le condition et corps
les commandes sont exécutées à plusieurs reprises jusqu'à ce que l'état de sortie de la condition commandes est
non nul.

Note
Le manuel de formation corps les commandes ne sont pas exécutées du tout si la première exécution de la condition
génère un état de sortie différent de zéro.

Une boucle until est exécutée de la même manière qu'une boucle while sauf que la condition
pour répéter la boucle est inversée : le corps les commandes sont exécutées lorsque l'état de sortie de
le condition commandes est différent de zéro.

L'état de sortie d'une boucle while/until est celui de la dernière boucle exécutée corps commander. le
l'état de sortie est zéro si le corps les commandes sont vides ou n'ont pas été exécutées du tout.

Pour boucle
La boucle for répète les commandes avec une variable assignée à l'une des valeurs données dans chaque
rond.

Pour la syntaxe de la boucle
pour varname in mot...; do commander...; fait pour varname do commander...; fait

Le manuel de formation mot liste après le in le jeton peut être vide, mais le point-virgule (ou saut de ligne) avant
le do le jeton est requis même dans ce cas. le mots ne sont pas traités comme des mots-clés, mais
vous devez citer des caractères de séparation (tels que & et |) pour les inclure dans un
mot. Si vous omettez le in jeton et les suivants mots, vous devez également omettre le
point-virgule avant le do jeton. Cependant, la coque ne se plaint pas de la
existence du point-virgule s'il n'est pas en mode POSIXly-correct. le commander la liste peut être
vide s'il n'est pas en mode POSIXly-correct.

Le manuel de formation varname doit être un nom portable (ASCII uniquement) en mode POSIXly-correct.

L'exécution d'une boucle for est lancée en développant le mots de la même manière que dans
l'exécution d'une simple commande. Si la in et mot les jetons sont omis, le shell
assume le mot jetons à être "$@". Ensuite, les étapes suivantes sont suivies pour chaque mot
développé (dans l'ordre dans lequel les mots ont été développés):

1. Affectez le mot à la variable dont le nom est varname.

2. Exécutez la commanders.

Chaque mot est affecté en tant que variable locale, sauf dans le mode POSIXly-correct. Si la
agrandissement de la mots n'a donné aucun mot en conséquence, le commanders ne sont pas exécutés à
tout.

L'état de sortie d'une boucle for est celui de la dernière exécutée commander. Le statut de sortie est
zéro si le commanders ne sont pas vides et ne sont pas exécutés du tout. Si la commanders sont vides,
l'état de sortie est celui de la dernière commande exécutée avant la boucle for.

Témoignage client commander
La commande case effectue une correspondance de modèle pour sélectionner les commandes à exécuter.

Syntaxe de la commande de cas
maisons mot in article de cas... Esac

Syntaxe des éléments de cas
(motifs) commander...;;

Le manuel de formation mot entre le maisons et in les jetons doivent être exactement un mot. le mot n'est pas
traité comme un mot-clé, mais vous devez citer des caractères de séparation (tels que & et |) À
les inclure dans le cadre de mot. Entre le in et Esac jetons que vous pouvez mettre n'importe
nombre d'éléments de cas (peut être aucun). Vous pouvez omettre le premier ( jeton d'un élément de cas et
le dernier ;; jeton devant le Esac jeton. Si le dernier commander d'un élément de cas est
terminé par un point-virgule, vous pouvez également omettre le point-virgule. le commanders dans un cas
l'élément peut être vide.

Le manuel de formation motifs dans un élément de cas sont un ou plusieurs jetons chacun séparé par un | jeton.

L'exécution d'une commande de cas commence par soumettre le mot aux quatre
extensions. Ensuite, les étapes suivantes sont suivies pour chaque élément de cas (dans l'ordre
apparence):

1. Pour chaque mot du motifs, développez le mot de la même manière que le mot et
teste si le modèle développé correspond au mot développé. (Si un modèle est trouvé
qui correspond au mot, les modèles restants ne sont ni développés ni testés, donc certains
du système motifs peut ne pas être étendu. Yash développe et teste les modèles dans le
ordre d'apparition, mais ce n'est peut-être pas le cas pour d'autres obus.)

2. Si l'un des motifs s'est avéré correspondre à la mot à l'étape précédente, le
commanders dans ce cas, l'élément est exécuté et l'exécution de l'ensemble de l'élément de cas
prend fin. Sinon, passez à l'élément de cas suivant.

L'état de sortie d'une commande case est celui de la commanderest exécuté. Le statut de sortie est
zéro si non commanders ont été exécutés, c'est-à-dire qu'il n'y avait pas d'éléments de cas, pas de correspondance
modèle a été trouvé, ou aucune commande n'a été associée au modèle correspondant.

En mode POSIXly-correct, le premier motif d'un élément de cas ne peut pas être Esac (même si
vous n'omettez pas le ( jeton).

Fonction définition
La commande de définition de fonction définit une fonction.

Syntaxe de définition de fonction
nom de fonction ( ) commande_composéefonction nom de fonction commande_composéefonction nom de fonction ( )
commande_composée

Dans la première syntaxe sans le fonction mot-clé, nom de fonction ne peut contenir aucun élément spécial
caractères tels que les points-virgules et les guillemets. Dans la deuxième et la troisième syntaxe, qui
ne peut pas être utilisé en mode POSIXly-correct, nom de fonction est soumis aux quatre expansions
lorsqu'il est exécuté. En mode POSIXly-correct, nom de fonction est limité à un portable (ASCII uniquement)
nom.

Lorsqu'une commande de définition de fonction est exécutée, une fonction dont le nom est nom de fonction is
défini avec son corps étant commande_composée.

Une commande de définition de fonction ne peut pas être directement redirigée. Toutes les redirections qui suivent
une définition de fonction est associée à commande_composée plutôt que toute la fonction
commande de définition. Dans fonction() { chat; } > / dev / null, par exemple, ce n'est pas fonction() { chat; }
mais { chat; } qui est redirigé.

L'état de sortie d'une définition de fonction est zéro si la fonction a été définie sans
erreurs, et non nulle sinon.

PARAMETRES ET VARIABLES


Paramètres sont des valeurs de chaîne qui sont développées dans le développement des paramètres. Il ya trois
types de paramètres : paramètres positionnels, paramètres spéciaux et variables.

Positionnel paramètres
Positionnel paramètres sont des paramètres identifiés par des nombres naturels. S'il y a
trois paramètres de position, par exemple, ils sont identifiés comme 1, 2et 3. Vous pouvez
obtenir le nombre de paramètres positionnels par la # paramètre spécial. le * et @ pour un spécial
les paramètres sont étendus à tous les paramètres positionnels.

Les paramètres positionnels sont initialisés à partir des arguments de la ligne de commande du shell lorsque le
shell est démarré (voir Arguments de la ligne de commande). A l'initialisation, l'ordre des
les opérandes sont conservés dans l'ordre des paramètres de position.

Lorsque le shell exécute un appel de fonction, les paramètres de position sont remplacés par
arguments à l'appel de la fonction afin que vous puissiez accéder aux arguments pendant que la fonction est
en cours d'exécution. Les paramètres de position sont restaurés à leurs valeurs d'origine lorsque le
l'exécution de la fonction est terminée.

Les paramètres positionnels peuvent être manipulés par des commandes intégrées telles que set et shift.

Notez que 0 n'est pas un paramètre positionnel mais un paramètre spécial.

Spécial paramètres
Spécial paramètres sont des paramètres identifiés chacun par un symbole unique. Ils ne peuvent pas être
directement attribué par l'utilisateur.

Yash fournit les paramètres spéciaux suivants :

0
Le nom du fichier exécutable du shell ou du fichier de script qui a été spécifié dans le
invocation du shell.

#
Le nombre de paramètres de position actuels. La valeur est un entier non négatif.

$
ID de processus du shell. La valeur est un entier positif et n'est jamais modifiée même
en sous-coquilles.

-
Options de shell actuellement activées. La valeur est une concaténation de caractères alphabétiques
qui sont les noms des options à caractère unique actuellement activées qui peuvent être spécifiées
dans l'invocation du shell. La valeur reflète les modifications des options activées lorsque vous activez ou
désactiver les options à l'aide de l'ensemble intégré.

?
L'état de sortie du dernier pipeline exécuté. La valeur est un entier non négatif.

!
ID de processus de la dernière liste asynchrone exécutée.

*
Ce paramètre spécial représente l'ensemble des paramètres positionnels. Quand il n'y a pas
paramètres positionnels, la valeur de ce paramètre spécial est la chaîne vide. Lorsque
il y a plus d'un paramètre de position, la valeur est une concaténation de tous les
paramètres de position, chacun étant séparé comme suit :

· Si la IFS variable existe et sa valeur n'est pas vide, les paramètres positionnels sont
chacun séparé par le premier caractère de la valeur du IFS variable.

· Si la IFS variable existe et a une valeur vide, les paramètres positionnels sont juste
concaténés sans aucun séparateur.

· Si la IFS variable n'existe pas, les paramètres positionnels sont chacun séparés par un
caractère d'espace.

@
Ce paramètre spécial représente l'ensemble des paramètres positionnels comme le * pour un spécial
paramètre ci-dessus. La différence entre les deux est le résultat de l'expansion qui
se produit entre une paire de guillemets doubles. Si la @ paramètre spécial est
développés à l'intérieur de guillemets doubles, les paramètres de position sont divisés en champs plutôt que
concaténé (malgré la citation). S'il n'y a pas de paramètres de position, le
l'expansion ne produit aucun mot plutôt qu'un mot vide.

· Lorsqu'il n'y a pas de paramètres de position, les mots de commande echo 1 "$@" 2 is
étendu aux trois mots echo, 1et 2.

· Lorsque les paramètres de position sont les trois mots 1, 2 2et 3, les mots de commande
echo "$@" est étendu aux quatre mots echo, 1, 2 2et 3, et les mots echo
"a$@b" aux quatre mots echo, a1, 2 2et 3b.

Variables
Variables sont des paramètres auxquels l'utilisateur peut attribuer des valeurs. Chaque variable a un nom qui
l'identifie et une valeur qui définit les résultats de l'expansion.

Un nom de variable est composé d'un ou plusieurs caractères alphanumériques et de traits de soulignement (_). A
le nom ne peut pas commencer par un chiffre. D'autres caractères peuvent être utilisés dans un nom selon
prise en charge de l'internationalisation de votre environnement.

Les variables exportées vers des commandes externes sont appelées convivial les variables. Ces palmes
sont passés à toutes les commandes externes invoquées par le shell. Variables passées au shell dans
l'appel sera automatiquement exporté.

Vous pouvez affecter des variables par une simple commande ainsi que le typet intégré. Tu peux
supprimez les variables en utilisant la fonction intégrée unset.

Variables d'utiliser by le coquille
Les variables suivantes sont utilisées par le shell à des fins particulières.

CDPATH
Cette variable est utilisée par le cd intégré pour trouver un répertoire de destination.

COLONNES
Cette variable spécifie la largeur (le nombre de colonnes de caractères) du
écran du terminal. La valeur affecte l'affichage de l'édition de ligne.

COMMAND_NOT_FOUND_HANDLER
Lorsque le shell ne trouve pas de commande à exécuter, la valeur de cette variable est
interprété et exécuté à la place. Vous pouvez remplacer la gestion des erreurs du shell
comportement avec cette variable. Voir Exécution de commandes simples pour plus de détails.

Cette fonctionnalité est désactivée en mode POSIXly-correct.

CHEMINÉE
Cette variable de tableau est utilisée par le shell pour stocker le contenu de la pile de répertoires. Si
vous modifiez la valeur de cette variable, la pile de répertoires peut être corrompue.

ÉCHO_STYLE
Cette variable spécifie le comportement de la fonction intégrée echo.

ENV
Lorsqu'un shell interactif est démarré en mode POSIXly-correct, la valeur de
cette variable permet de retrouver le fichier d'initialisation. Voir Initialisation de yash.

FCEDIT
Cette variable spécifie un programme d'édition utilisé pour éditer les lignes de commande pendant
exécution de la fonction intégrée fc.

MANIPULÉ
Cette variable peut être définie dans le gestionnaire command-not-found pour indiquer au shell de ne pas
produire un autre message d'erreur. Voir Exécution de commandes simples pour plus de détails.

FICHIER HIST
Cette variable spécifie le chemin du fichier dans lequel enregistrer l'historique des commandes.

HISTRMDUP
Cette variable spécifie le nombre d'éléments de l'historique des commandes à vérifier
reproduction. Lorsque le shell ajoute un nouvel élément d'historique à l'historique des commandes,
si certains des plus récents n éléments ont le même contenu que le nouveau, alors le
les éléments existants en double sont supprimés de l'historique avant l'ajout du nouveau,
n est la valeur de cette variable.

Si la valeur de cette variable est 1, par exemple, l'élément le plus récent est supprimé
lorsqu'un nouvel élément ayant le même contenu est ajouté.

Articles plus anciens que le nl'élément récent n'est pas supprimé. Aucun élément n'est supprimé si le
la valeur de cette variable est 0. Tous les éléments sont susceptibles d'être supprimés si la variable
la valeur est supérieure ou égale à la valeur du TAILLE HIST variable.

TAILLE HIST
Cette variable spécifie le nombre maximal d'éléments dans l'historique des commandes.

ACCUEIL
Cette variable spécifie le chemin d'accès au répertoire personnel de l'utilisateur et affecte
résultats de l'expansion de tilde et cd intégré.

IFS
Cette variable spécifie les séparateurs utilisés dans le fractionnement des champs. La valeur variable est
initialisé aux trois caractères d'un espace, d'une tabulation et d'une nouvelle ligne lorsque le
shell est lancé.

LANGUE, LC_TOUS, LC_COLLER, LC_CTYPE, LC_MESSAGES, LC_MONETAIRE, LC_NUMERIC, LC_TIME
Ces variables spécifient une locale dans laquelle le shell s'exécute. Le shell choisit le
l'encodage d'entrée/sortie du fichier, la langue du message d'erreur, etc. selon le
paramètres régionaux spécifiés.

Sauf si le shell est interactif et n'est pas en mode POSIXly-correct, la valeur de
le LC_CTYPE La variable n'est prise en compte qu'au démarrage du shell. Une fois la coquille
a été initialisé, en changeant la valeur de LC_CTYPE n'aura aucun effet sur le
comportement du shell.

LINNO
La valeur de cette variable est automatiquement définie sur le numéro de la ligne dans laquelle le
commande actuellement exécutée apparaît dans le fichier.

Dans le shell interactif, le numéro de ligne est réinitialisé à 1 chaque fois que le shell lit
et exécute une commande.

Si vous affectez ou supprimez cette variable, elle ne fournira plus de numéros de ligne.

LIGNES
Cette variable spécifie la hauteur (le nombre de lignes de caractères) du terminal
écran. La valeur affecte l'affichage de l'édition de ligne.

MAIL
Cette variable spécifie le chemin d'accès d'un fichier vérifié lors de la vérification du courrier.

VÉRIFICATION DU COURRIER
Cette variable spécifie la fréquence à laquelle le shell doit vérifier le courrier. La valeur a
à spécifier sous la forme d'un entier positif en secondes. La valeur est initialisée à la
valeur par défaut de 600 lorsque le shell est lancé.

CHEMIN DE COURRIER
Cette variable spécifie les noms de chemin des fichiers qui sont vérifiés lors de la vérification du courrier.

NLSPATH
La norme POSIX prescrit que la valeur de cette variable spécifie le chemin d'accès
modèles de fichiers de données de message dépendant des paramètres régionaux, mais yash ne l'utilise pas.

ANCIENWD
Cette variable est définie sur le chemin du répertoire de travail précédent lorsque vous modifiez le
répertoire de travail en utilisant le cd ou d'autres éléments intégrés. Cette variable est exportée par
défaut.

OPTARG
Lorsque la fonction intégrée getopts analyse une option qui prend un argument, l'argument
valeur est affectée à cette variable.

OPTINDRE
La valeur de cette variable spécifie l'index d'une option qui doit être analysée
par la prochaine exécution intégrée getopts. Cette variable est initialisée à 1 lorsque le
shell est lancé.

PATH
Cette variable spécifie les chemins qui sont recherchés pour une commande dans la recherche de commande.

PPID
La valeur de cette variable est l'ID de processus du processus parent du shell, qui
est un entier positif. Cette variable est initialisée au démarrage du shell. le
La valeur n'est pas modifiée lorsque le shell crée un nouveau sous-shell.

PROMPT_COMMAND
Le shell interprète et exécute la valeur de cette variable avant d'imprimer chaque
invite de commande si le shell est interactif et non en mode POSIXly-correct.
Ce comportement équivaut à exécuter la commande eval -i --
"${PROMPT_COMMAND-}" avant chaque invite de commande, mais son état de sortie ne
affecter l'expansion de la ? paramètre spécial dans la commande suivante.

PS1
Cette variable spécifie la chaîne d'invite de commande principale imprimée par un
coquille. Voir Invites pour le format de la valeur de la variable. La valeur est initialisée
à \$ lorsque le shell est démarré. (En mode POSIX-correct, la valeur initiale
est soit $ or # selon que l'ID utilisateur effectif du processus shell
est nul ou non.)

PS1R
Cette variable spécifie la chaîne d'invite auxiliaire imprimée à droite de la
curseur lorsque vous entrez une ligne de commande dans un shell interactif. Voir Invites pour le
format de la valeur de la variable.

PS1S
Cette variable spécifie le style de police des chaînes de commande que vous entrez dans un
coquille interactive. Voir Invites pour le format de la valeur de la variable.

PS2
Cette variable est comme la PS1 variable, mais il est utilisé pour la seconde et
lignes suivantes d'une commande de plus d'une ligne. Voir Invites pour le
format de la valeur de la variable. La valeur est initialisée à > quand la coquille est
commencé.

PS2R
Cette variable est comme la PS1R variable, mais elle est utilisée lorsque PS2 est utilisé. Voir
Demande le format de la valeur de la variable.

PS2S
Cette variable est comme la PS1S variable, mais elle est utilisée lorsque PS2 est utilisé. Voir
Demande le format de la valeur de la variable.

PS4
La valeur de cette variable est imprimée avant chaque sortie de trace de commande lorsque le
L'option xtrace est activée. La valeur est sujette à l'expansion des paramètres, commande
substitution, développement arithmétique. Vous pouvez également utiliser des notations de barre oblique inverse si le
shell n'est pas en mode POSIXly-correct. La valeur est initialisée à + lorsque le
shell est lancé.

PS4S
Cette variable est comme la PS1S variable, mais elle est utilisée lorsque PS4 est utilisé. Tu peux
utilisez cette variable pour modifier le style de police de la sortie de trace de commande.

PWD
La valeur de cette variable est le chemin du répertoire de travail courant. le
la valeur est définie au démarrage du shell et réinitialisée à chaque fois que le répertoire de travail
est modifié par le cd ou d'autres éléments intégrés. Cette variable est exportée par défaut.

RANDOM
Vous pouvez utiliser cette variable pour obtenir des nombres aléatoires. La valeur de cette variable est un
entier aléatoire uniformément distribué entre 0 et 32767 (inclus). Tu auras
un nombre différent chaque fois que la variable est développée.

Vous pouvez définir la "graine" de nombres aléatoires en attribuant un entier non négatif à
la variable.

Si vous supprimez cette variable, elle ne fonctionnera plus comme générateur de nombres aléatoires.
Si le shell a été appelé en mode POSIXly-correct, cette variable ne fonctionne pas
comme générateur de nombres aléatoires.

TERME
Cette variable spécifie le type de terminal dans lequel le shell s'exécute.
La valeur affecte le comportement de l'édition de ligne.

YASH_AFTER_CD
Le shell interprète et exécute la valeur de cette variable après chaque fois que le
le répertoire de travail du shell est modifié par le cd ou d'autres éléments intégrés. Ce comportement
équivaut à exécuter la commande eval -i -- "${YASH_AFTER_CD-}" après le
répertoire a été modifié.

YASH_LOADPATH
Cette variable spécifie les répertoires dans lesquels la fonction intégrée dot recherche un fichier de script.
Plus d'un répertoire peut être spécifié en les séparant par deux-points comme le
PATH variable. Au démarrage du shell, cette variable est initialisée à la
chemin d'accès du répertoire dans lequel les fichiers de script communs sont installés.

YASH_LE_TIMEOUT
Cette variable spécifie combien de temps le shell doit attendre une prochaine entrée possible
du terminal lorsqu'il a rencontré une séquence de contrôle ambiguë alors qu'il
édition de ligne. La valeur doit être spécifiée en millisecondes. Si vous ne définissez pas
cette variable, la valeur par défaut de 100 millisecondes est supposée.

YASH_VERSION
La valeur est initialisée au numéro de version du shell lorsque le shell est
commencé.

Arrays
An tableau est une variable qui contient zéro ou plusieurs chaînes. Les valeurs de chaîne d'un
tableau sont identifiés par des nombres naturels (comme les paramètres positionnels).

Vous pouvez affecter des valeurs à un tableau en utilisant une simple commande ainsi que le tableau
intégré. Vous pouvez utiliser la fonction intégrée unset pour supprimer des tableaux.

Les tableaux ne peuvent pas être exportés en tant que tableaux. Lorsqu'un tableau est exporté, il est traité comme un
variable normale dont la valeur est une concaténation de toutes les valeurs du tableau, chacune séparée
par un côlon.

Les tableaux ne sont pas pris en charge dans le mode POSIXly-correct.

WORD AGRANDISSEMENTS


Word avec des données est la substitution d'une partie d'un mot par une autre chaîne particulière. Il y a
sept types d'extensions de mots :

1. Extension de Tilde

2. Extension des paramètres

3. Substitution de commande

4. Développement arithmétique

5. Expansion de l'accolade

6. Fractionnement des champs

7. Extension du nom de chemin (globbing)

Ces types d'extensions sont effectuées dans l'ordre spécifié ci-dessus.

L'expansion de tilde, l'expansion de paramètre, la substitution de commande et l'expansion arithmétique sont
appelée quatre expansions.

Tilde avec des données
In tilde avec des données, parties de mots commençant par un tilde (~) sont remplacés par
noms de chemins particuliers. La partie de chaque mot qui est substituée est à partir du début de
le mot, qui est un tilde, jusqu'à (mais non compris) la première barre oblique (/) dans le mot. Si
le mot ne contient pas de barre oblique, le mot entier est remplacé. Si un caractère dans le
la partie substituée est citée, l'expansion du tilde n'est pas effectuée sur le mot.

Les résultats de l'expansion sont déterminés par le format de la pièce substituée :

~
Un seul tilde est remplacé par la valeur du ACCUEIL variable.

~Nom d'utilisateur
Un tilde suivi d'un nom d'utilisateur est remplacé par le chemin d'accès du domicile de l'utilisateur
répertoire.

~+
~+ est remplacé par la valeur de PWD variable.

~-
~- est remplacé par la valeur de ANCIENWD variable.

~+n, ~-n
n est un entier non négatif. Ce type d'expansion de tilde donne le nom de chemin de
dont un répertoire ~+n or ~-n est l'index dans la pile de répertoires.

Lorsque l'expansion de tilde est effectuée sur la valeur d'une affectation de variable qui se produit pendant
l'exécution d'une commande simple, la valeur est considérée comme une liste de mots séparés par deux-points
et ces mots sont chacun sujets à une expansion en tilde. Par exemple, l'affectation de variables

VAR=~/une:~/b:~/c

équivaut à

VAR=/home/foo/a:/home/foo/b:/home/foo/c

si la valeur de ACCUEIL la variable est /accueil/foo.

La norme POSIX ne prescrit pas comment le shell doit se comporter lorsqu'il rencontre un
erreur lors de l'expansion du tilde (par exemple, lorsque le ACCUEIL la variable n'est pas définie). Yash en silence
ignore toutes les erreurs lors de l'expansion du tilde ; la partie du mot qui serait substituée
est laissé intact.

En mode POSIXly-correct, l'expansion tilde prend en charge les formats de ~ et ~Nom d'utilisateur seulement.

Paramètre avec des données
Paramètre avec des données se développe à la valeur d'un paramètre.

La syntaxe de l'expansion typique et simple des paramètres est ${paramètre}, qui s'étend au
valeur du paramètre dont le nom est paramètre. Vous pouvez omettre les accolades (par exemple, $paramètre)
if

· paramètre est un paramètre spécial,

· paramètre est un paramètre de position dont l'indice est un nombre entier à un chiffre, ou

· paramètre est une variable et le développement du paramètre n'est pas suivi d'un caractère
qui peut être utilisé comme partie d'un nom de variable. Par example, ${chemin}-nom est équivalent
à $nom-chemin, mais ${chemin}nom et $nomchemin sont différents.

If paramètre n'est pas un paramètre spécial, un paramètre positionnel et une variable, c'est un
erreur de syntaxe. (Certains shells autres que yash peuvent traiter un tel cas comme une erreur d'expansion.)

Si l'option de désactivation est désactivée et que le paramètre est une variable indéfinie, c'est un
erreur d'extension. Si l'option unset est activée, une variable indéfinie s'étend au
chaîne vide.

Une syntaxe plus complexe de l'expansion des paramètres permet de modifier la valeur d'un paramètre.

Extension des paramètres
${ préfixe paramètre indice modificateur }

Les espaces dans la définition de syntaxe ci-dessus sont destinés à la lisibilité uniquement et doivent être omis.
Vous pouvez omettre préfixe, indiceEt / ou modificateur.

Titre
Le manuel de formation préfixe, le cas échéant, doit être un signe dièse (#). Si une extension de paramètre a le préfixe,
le résultat de l'expansion est le nombre de caractères dans la valeur que cette expansion aurait
être étendu à sans le préfixe.

Paramètre prénom
Le nom du paramètre (paramètre) doit être soit

· un nom d'un paramètre spécial, d'un paramètre de position ou d'une variable ; ou

· une autre extension de paramètre, une substitution de commande ou une extension arithmétique.

L'expansion du paramètre est étendue à la valeur de la paramètre. Si paramètre est un
variable de tableau, les valeurs du tableau sont divisées en champs comme le @ paramètre spécial
à moins que l'indice [*] est spécifié.

If paramètre est une autre extension, on l'appelle un imbriqué avec des données. Extension imbriquée
ne peut pas être utilisé en mode POSIXly-correct. L'appareil dentaire ({ }) d'un paramètre imbriqué
l'expansion ne peut pas être omise.
Index.sp Un indice permet d'extraire une partie de la valeur du paramètre (ou certaines des valeurs du tableau).

Sommaire
[word1]

[word1,word2]

word1 et word2 sont analysés de la même manière que les jetons normaux, sauf qu'ils sont
toujours délimité par , or ] et peut contenir des caractères d'espacement.

S'il y a un indice dans un développement de paramètres, il s'interprète comme suit :

1. Mots word1 et word2 sont soumis à l'expansion des paramètres, à la substitution de commandes et
expansion arithmétique.

2. S'il n'y a pas word2 et si word1 s'étend à l'un des *, @et #, alors c'est le
interprétation de indice et la prochaine étape n'est pas franchie.

3. Les résultats des étapes précédentes (les word1 et word2) sont interprétés et
évalué comme une expression arithmétique de la même manière que dans l'expansion arithmétique.
Les nombres entiers résultants sont l'interprétation de indice. Si les résultats ne sont pas
entiers, c'est une erreur d'expansion. Si il n'y a pas word2, il est entendu que word2 is
égal à word1.

If paramètre est une variable tableau, le indice spécifie la partie du tableau. Si paramètre
est soit le * or @ paramètre spécial, le indice spécifie la plage d'index de position
paramètres. Dans d'autres cas, le indice spécifie la plage d'index d'une sous-chaîne de
valeur de paramètre qui est développée. Dans tous les cas, la plage spécifiée du tableau
les valeurs, les paramètres de position ou la valeur du paramètre restent dans les résultats de l'expansion
et les autres valeurs sont supprimées.

Si l'interprétation de indice est un ou deux entiers, les règles suivantes s'appliquent :

· Si la valeur de l'indice interprété est négative, il enveloppe autour. Par exemple, l'indice
la valeur -1 correspond à la dernière valeur/caractère.

· Ce n'est pas une erreur lorsque la valeur de l'index est hors plage. Valeurs/caractères existants
dans la plage sont simplement sélectionnés.

· Si l'interprétation de l'un ou l'autre word1 or word2 est 0, la plage est supposée vide et
l'expansion ne donne rien.

Si l'interprétation de indice fait partie de *, @et #, il est traité comme suit :

*
If paramètre est un tableau, toutes les valeurs du tableau sont concaténées en un seul
chaîne de caractères. Si paramètre est le * or @ paramètre spécial, tous les paramètres de position sont
concaténé dans une chaîne. Voir le descriptif du * paramètre spécial pour la façon dont le
les valeurs/paramètres positionnels sont séparés dans la chaîne de résultat. Dans d'autres cas, le
interprétation de indice est traité comme si l'interprétation était les deux entiers 1 et
-1.

@
L'interprétation de indice est traité comme si l'interprétation était les deux entiers 1
et 1.

#
L'interprétation de la #indice est spécial en ce qu'il ne spécifie pas simplement un
intervalle. Au lieu de cela, les valeurs développées sont remplacées par le nombre.

If paramètre est un tableau, le résultat de cette expansion de paramètre sera le nombre de
valeurs dans le tableau en cours de développement. Si paramètre est le * or @ paramètre spécial, le
le résultat sera le nombre de paramètres de position actuels. Sinon, le résultat sera
être le nombre de caractères dans la valeur qui est développée.

Si une extension de paramètre ne contient pas de indice, il est supposé être . Dans le
mode POSIXly correct, indice ne peut pas être spécifié.

Exemple 1. Expansion of a Ordinaire variable

Les commandes suivantes imprimeront la chaîne abc:

var='123ABC789'
echo "${var[4,6]}"

Exemple 2. Expansion of positionnel paramètres

Les commandes suivantes imprimeront la chaîne 2 3 4:

ensemble 1 2 3 4 5
echo "${*[2,-2]}"

Exemple 3. Expansion of an tableau

Les commandes suivantes imprimeront la chaîne 2 3 4:

tableau=(1 2 3 4 5)
echo "${tableau[2,-2]}"

Modifier
Vous pouvez modifier la valeur à développer en utilisant modificateurs:

-mot
Si le nom du paramètre (paramètre) est une variable indéfinie, le paramètre
l'expansion est étendue à mot. Il n'est pas traité comme une erreur si l'option non définie
est désactivé.

+mot
Si le nom du paramètre (paramètre) est une variable existante, le développement du paramètre
est étendu à mot. Il n'est pas traité comme une erreur si l'option unset est
désactivée.

=mot
Si le nom du paramètre (paramètre) est une variable indéfinie, mot est affecté à
la variable et l'expansion des paramètres sont étendues à mot. Il n'est pas traité comme
une erreur si l'option unset est désactivée.

?mot
Si le nom du paramètre (paramètre) est une variable indéfinie, mot est imprimé comme un
message d'erreur à l'erreur standard. Si mot est vide, le message d'erreur par défaut
est imprimé à la place.

:-mot, :+mot, :=mot, :?mot
Ceux-ci sont similaires aux quatre types de modificateurs ci-dessus. La seule différence est
que si paramètre existe et a une valeur vide, il est également traité comme un
variable indéfinie.

#mot
Le shell effectue une correspondance de modèle par rapport à la valeur qui est développée,
grâce à mot comme motif. Si mot correspond au début de la valeur, la correspondance
une partie est supprimée de la valeur et l'autre partie reste comme résultats d'expansion.
La correspondance la plus courte est utilisée si plusieurs correspondances sont possibles.

##mot
Ceci est similaire à #mot au dessus. La seule différence est que la correspondance la plus longue
est utilisé si plus d'une correspondance est possible.

%mot
Ceci est similaire à #mot au dessus. La seule différence est que la correspondance est essayée à
la fin de la valeur plutôt qu'au début : si mot correspond à la fin du
valeur, la partie correspondante est supprimée de la valeur et l'autre partie reste telle quelle
résultats d'expansion.

%%mot
Ceci est similaire à %mot au dessus. La seule différence est que la correspondance la plus longue
est utilisé si plus d'une correspondance est possible.

/word1/word2
Le shell effectue une correspondance de modèle par rapport à la valeur qui est développée,
grâce à word1 comme motif. Si word1 correspond à n'importe quelle partie de la valeur, la correspondance
pièce est remplacée par word2 et la valeur entière après le remplacement reste comme
résultats d'expansion. Si word1 correspond à plus d'une partie de la valeur, seule la
la première partie est remplacée. La correspondance la plus courte est remplacée si plusieurs
la correspondance est possible pour le même point de départ dans la valeur.

Ce modificateur ne peut pas être utilisé en mode POSIXly-correct.

/#word1/word2
Ceci est similaire à /word1/word2 au dessus. La seule différence est que word1 allumettes
uniquement au début de la valeur développée.

/%word1/word2
Ceci est similaire à /word1/word2 au dessus. La seule différence est que word1 allumettes
uniquement à la fin de la valeur développée.

//word1/word2
Ceci est similaire à /word1/word2 au dessus. La seule différence est que tout correspond
les pièces sont remplacées si word1 correspond à plus d'une partie de la valeur.

:/word1/word2
Ceci est similaire à /word1/word2 au dessus. La seule différence est que la valeur est
remplacé uniquement lorsque word1 correspond à la valeur entière.

Dans tous les types de modificateurs ci-dessus, les mots sont soumis aux quatre expansions lorsque (et
uniquement lorsqu'ils sont utilisés.

If paramètre est une variable tableau ou le @ or * paramètre spécial, les modificateurs affectent
chaque valeur du tableau ou tous les paramètres positionnels.

Command substitution
Command substitution développe la sortie des commandes spécifiées.

Substitution de commandes
$(commandes)

`commandes`

Lorsque la substitution de commande est évaluée, commandes sont exécutés par un sous-shell avec une sortie
acheminé vers la coque. Quand le commandes terminé, la substitution de commande est remplacée
avec la sortie du commandes. Tous les caractères de fin de ligne dans la sortie sont
ignoré.

Lorsque la substitution de commande du formulaire $(commandes) est analysé, le commandes sont analysés
soigneusement afin que les commandes complexes telles que la substitution de commandes imbriquées soient analysées
correctement. Si commandes commencer avec (, vous devez mettre un espace avant commandes de sorte que la
la substitution de commande entière n'est pas confondue avec l'expansion arithmétique. Si la coquille est dans
le mode POSIXly-correctly, le commandes sont analysés chaque fois que la substitution de commande est
étendu; autrement, commandes ne sont analysés que lorsque la substitution de commande est analysée.

Si la substitution de commande est de la forme `commandes`, un commandes ne sont pas analysés lorsque le
la substitution de commande est analysée. La fin de commandes est détecté par le premier backquote
caractère (`) après le début de commandes qui n'est pas entre guillemets par une barre oblique inverse.
Citations inverses faisant partie de commandes (généralement utilisé pour la substitution de commandes imbriquées) doit
être cité par des barres obliques inverses. le commandes sont analysés chaque fois que la substitution de commande est
étendu.

Arithmétique avec des données
Arithmétique avec des données évalue une expression arithmétique et se développe à la valeur de la
expression.

Développement arithmétique
$((expression))

Lorsque le développement arithmétique est étendu, le expression est sujet à l'expansion des paramètres,
la substitution de commandes et l'expansion arithmétique (imbriquée). le expression est analysé dans
(presque) de la même manière qu'une expression du langage de programmation C.

Yash permet à une expression d'être soit un entier (du type long en C) soit un
nombre à virgule flottante (de type double en C). Une opération sur des nombres entiers donne un
entier et une opération impliquant un nombre à virgule flottante donne un nombre à virgule flottante.
En mode POSIXly-correct, vous ne pouvez utiliser que des entiers.

Les opérateurs suivants sont disponibles (dans l'ordre de priorité) :

1. ( )

2. ++-- (opérateurs postfixés)

3. ++--+-~ ! (opérateurs de préfixe)

4. */%

5. +- (opérateurs binaires)

6. << >>

7. <<=>>=

8. ==!=

9. &

10. ^

11. |

12. &&

13. ||

14. ? :

15. =*=/=%=+=-=<<=>>=&=^=|=

Le manuel de formation ++ et -- les opérateurs ne peuvent pas être utilisés en mode POSIXly-correct.

Une expression atomique peut être un entier littéral, un nombre à virgule flottante littéral,
et une variable. Les littéraux sont analysés de la même manière qu'en C. Un littéral entier octal
commence avec 0, et hexadécimal avec 0x. Un littéral de nombre à virgule flottante peut avoir un
exposant (c'est-à-dire 1.23e + 6). Une variable avec une valeur non numérique entraînera une erreur lorsque
analysé comme un nombre.

Dans le mode POSIXly-correct, les variables sont toujours analysées comme des nombres. Sinon, les variables
ne sont analysés que lorsqu'ils sont utilisés comme nombres dans le calcul. Les variables non analysées sont laissées
intact.

set +o posixly-correct
toto=bar
echo $((0 ? foo : foo)) # affiche "bar"
echo $((foo + 0)) # erreur

Entretoise avec des données
Entretoise avec des données se développe en plusieurs mots séparés avec des parties précédentes et suivantes
dupliqué à chaque mots fractionnés. L'expansion de l'accolade n'est étendue que lorsque l'extension de l'accolade
l'option est activée.

Extension d'accolades séparées par des virgules
{word1,word2, ...,motn}

Extension de l'entretoise de gamme
{Commencer..fin}

{Commencer..fin..delta}

L'expansion des accolades séparées par des virgules est étendue à chaque mot séparé par des virgules. Par example,
un{1,2,3}b est étendu aux trois mots a1b, a2bet a3b.

L'expansion des accolades est étendue aux nombres entiers dans la plage définie par Commencer et finL’
la différence entre chaque nombre entier peut être définie par delta. Si Commencer est plus grand que fin, un
les résultats seront en ordre décroissant. Lorsque ..delta est omis, sa valeur par défaut est 1 ou -1. Pour
Par exemple, un{1..3}b est étendu aux trois mots a1b, a2bet a3bEt un{1..7..2}b à la
quatre mots a1b, a3b, a5bet a7b.

Plusieurs extensions d'accolades peuvent être utilisées dans un seul mot. Les extensions d'accolades peuvent également être imbriquées.
Vous pouvez citer des accolades et/ou des virgules pour éviter qu'elles ne soient traitées comme des expansions d'accolades.

Toutes les erreurs dans l'expansion des accolades sont silencieusement ignorées.

Champ scission
In champ scission, les mots sont divisés selon des séparateurs prédéfinis.

Le fractionnement de champ ne peut se produire que dans des parties de mots résultant du paramètre
expansion, substitution de commande et expansion arithmétique qui ne sont pas entre
guillemets doubles. Les résultats d'expansion de la @ paramètre spécial sont exceptionnellement
divisé même entre guillemets doubles.

Les séparateurs utilisés dans le fractionnement des champs sont définis par la valeur de IFS variable. Si la
variable n'existe pas, la valeur est supposée être les trois caractères espace, tabulation,
et nouvelle ligne.

Caractères inclus dans la valeur de la IFS variables sont appelées IFS caractères. IFS
les caractères qui sont l'un des espace, tabulation et saut de ligne sont appelés IFS whitespace et autres IFS
les personnages sont appelés IFS non-blanc.

Le fractionnement des champs s'effectue comme suit :

1. Le shell recherche des mots pour les points de partage. Un point de partage est un ou plusieurs IFS adjacents
caractères dans les portions de mot qui sont soumis à la division de champ. Ce qui suit
des mesures sont prises pour chaque point de division trouvé.

2. Si le point de partage comprend un ou plusieurs espaces non blancs IFS, tous les espaces blancs IFS dans
le point de division est ignoré et le mot est divisé à chaque espace non blanc IFS dans le
point de partage.

3. Si le point de partage n'inclut pas d'espaces non blancs IFS, le mot est divisé au point de partage.
point à moins qu'il ne soit au début ou à la fin du mot.

4. Les points de partage sont supprimés des résultats.

Note
Les mots ne sont pas divisés du tout lorsque la valeur de la IFS variable est vide.

Chemin d'accès avec des données
Chemin d'accès avec des données effectue une correspondance de modèle et s'étend aux noms de chemin correspondant au
motif.

Un mot soumis à l'expansion du nom de chemin est traité comme un modèle. Si un ou plusieurs chemins d'accès
sont trouvées qui correspondent au modèle, les noms de chemin deviennent les résultats de la
extension du nom de chemin.

L'expansion du nom de chemin n'est pas effectuée lorsque l'option glob est désactivée.

Le shell recherche dans les répertoires lisibles les noms de chemin correspondants. Les répertoires illisibles sont
ignoré en silence.

Les options suivantes affectent le comportement de l'expansion du nom de chemin :

null-glob
Cette option affecte le résultat de l'expansion du nom de chemin lorsqu'aucun nom de chemin correspondant n'est
trouvé. Si activé, le résultat est aucun mot. Si désactivé, le résultat est l'original
mot modèle.

cas-glob
Cette option spécifie la sensibilité à la casse dans la correspondance. Si elle est activée, la correspondance de modèle est
fait en respectant la casse.

point-glob
Cette option affecte la correspondance des noms de fichiers commençant par un point (.). S'il est désactivé, un
le point au début d'un nom de fichier ne correspond pas aux modèles génériques (? et *) ou
expressions entre parenthèses. Si activé, il n'y a pas de traitement spécial des périodes.

marque-dirs
Si activé, chaque nom de chemin résultant qui est un nom de répertoire est suffixé par une barre oblique
(/).

glob étendu
Cette option active l'extension. (Voir ci-dessous)

Toutes les erreurs dans l'expansion du nom de chemin sont ignorées en silence. Si le mot est un modèle invalide,
cela devient juste le résultat. Les résultats dépendent de l'option null-glob lorsqu'aucune correspondance
les noms de chemin sont trouvés.

La correspondance de modèle est effectuée pour chaque nom de fichier (ou composant de nom de chemin) des noms de chemin. La coquille
ignore la correspondance pour les modèles littéraux qui ne contiennent pas de caractères génériques ou d'expressions entre crochets. Comme un
résultat, les motifs /*/foo et /*/fo[o] peut donner des résultats d'expansion différents lorsque le
l'option case-glob est désactivée ; par exemple, le motif /*/fo[o] correspond au chemin d'accès
/bar/FOO mais le modèle /*/foo pas parce que la correspondance est ignorée pour foo.

Extension in chemin d'accès avec des données
Les modèles suivants peuvent être utilisés lorsque l'option extended-glob est activée.

**
Le répertoire est recherché de manière récursive et le modèle correspond à n'importe quel nombre de
noms de fichier de répertoire (chacun séparé par une barre oblique). Tout répertoire dont le nom commence
avec un point est exclu de la recherche. Par exemple, le motif répertoire/**/fichier Vous pouvez
correspondre aux noms de chemin répertoire/fichier, répertoire/foo/fichier, répertoire/a/b/c/fichier, etc.

Ce modèle n'est pas efficace lorsqu'il apparaît à la fin de l'ensemble du modèle (c'est-à-dire
bouffe/bar/**).

. **
Ce modèle est comme **, mais tous les répertoires sont recherchés, y compris ceux avec un
nom commençant par un point.

***
Ce modèle est comme **, mais si un lien symbolique vers un répertoire est trouvé pendant
recherche récursive, le répertoire est également recherché de manière récursive.

***
Ce modèle est comme ***, mais tous les répertoires sont recherchés, y compris ceux avec un
nom commençant par un point.

RECONNAISSANCE CORRESPONDANT À NOTATION


Patron de Couture assorti notation est une syntaxe de motifs qui représentent des ensembles particuliers de
cordes. Lorsqu'une chaîne est incluse dans l'ensemble de chaînes qu'un modèle représente, le modèle
est dit à rencontre la ficelle. Qu'un modèle corresponde ou non à une chaîne est défini comme
suit.

Normale caractères
Un caractère qui n'est pas entre guillemets ou l'un des caractères spéciaux définis ci-dessous est un caractère normal.
caractère, qui correspond au caractère lui-même.

Par exemple, le motif abc correspond à la chaîne abc, et pas d'autres chaînes.

Caractère unique générique
Le personnage ? correspond à n'importe quel caractère.

Par exemple, le motif un?c correspond à toute chaîne de trois caractères commençant par a et
se termine par c tels que aac, abcet un;c.

Multi-caractère générique
Le personnage * correspond à n'importe quelle chaîne (de n'importe quelle longueur, y compris la chaîne vide).

Par exemple, le motif un * c correspond à toute chaîne commençant par a et se termine avec c, tel
as ac, abcet un;xyz;c.

Support expression
Un motif entouré de crochets ([ et ]) est un support expression. Une équerre
expression doit avoir au moins un caractère entre crochets. Les personnages entre
les parenthèses sont interprétées comme un support expression modèle, qui est défini ci-dessous
notation spéciale pour l'expression entre parenthèses. Un modèle d'expression entre parenthèses représente un ensemble de
personnages. L'expression entre parenthèses correspond à l'un des caractères de l'ensemble
représente le motif d'expression entre parenthèses.

Si le support d'ouverture ([) est suivi d'un point d'exclamation (!), l'exclamation n'est pas
traité comme faisant partie du modèle d'expression entre parenthèses et l'ensemble de l'expression entre parenthèses à la place
correspond à un caractère qui est pas inclus dans l'ensemble le motif d'expression de parenthèse
représente. Si le crochet ouvrant est suivi d'un caret (^), il est traité comme un
point d'exclamation comme ci-dessus (mais les coquilles autres que le yash peuvent traiter le caret différemment).

Si le crochet ouvrant (ou l'exclamation ou le caret suivant, le cas échéant) est suivi d'un
parenthèse fermante (]), il est traité comme faisant partie du modèle d'expression entre parenthèses plutôt que comme
la fin de l'expression entre parenthèses. Vous ne pouvez pas citer de caractères dans l'expression entre parenthèses
pattern parce que la citation est traitée avant l'expression entre parenthèses.

Une parenthèse ouvrante dans un motif est traitée comme un caractère normal si ce n'est pas le
début d'une expression entre parenthèses valide.

Normale caractères (en support expression modèle)
Un caractère qui n'est pas l'un des caractères spéciaux définis ci-dessous est un caractère normal,
qui représente le personnage lui-même.

Par exemple, le modèle d'expression entre parenthèses abc représente l'ensemble des trois caractères
a, bet c. L'expression entre parenthèses [abc] correspond donc à l'un des trois caractères.

Autonomie expressions
Un trait d'union précédé et suivi d'un caractère (ou d'un symbole de classement) est un gamme expression,
qui représente l'ensemble des deux caractères et tous les caractères entre les deux dans le
ordre de classement. UNE collation de commander est un ordre de caractères défini dans les paramètres régionaux
revendre.

Si un trait d'union est suivi d'une parenthèse fermante (]), la parenthèse est traitée comme la fin de la
entre parenthèses et le trait d'union comme un caractère normal.

Par exemple, l'expression de plage 3-5 représente l'ensemble des trois caractères 3, 4et
5. L'expression entre parenthèses [3-5-] correspond donc à l'un des quatre caractères 3, 4, 5et
-.

Assemblage symboles
A assemblage symbole permet à plusieurs caractères d'être traités comme un seul caractère dans
correspondant à. Un symbole de classement est composé d'un ou plusieurs caractères délimités par le caractère spécial
supports [. et .].

Un ou plusieurs caractères traités comme un seul caractère dans la correspondance sont appelés un
assemblage un élément. Précisément, un modèle d'expression entre parenthèses représente un ensemble d'assemblages
éléments et une expression entre parenthèses correspondent à un élément de classement plutôt qu'à un caractère, mais
nous ne les différencions pas par souci de brièveté ici.

Par exemple, la combinaison de caractères "ch" était traitée comme un seul caractère dans le
langue espagnole traditionnelle. Si cette combinaison de caractères est enregistrée en tant qu'assemblage
élément dans les données locales, l'expression entre parenthèses [[.ch.]df] correspond à l'un des ch, det f.

Équivalence les classes
An équivalence classe représente un ensemble de caractères qui sont considérés équivalent. A
la classe d'équivalence est constituée d'un caractère (ou plus précisément d'un élément de classement)
entouré par les crochets spéciaux [= et =].

Une classe d'équivalence représente l'ensemble de caractères constitué du caractère
entre parenthèses et les caractères qui appartiennent à la même classe d'équivalence primaire
comme caractère inclus. Le shell consulte les données locales pour la définition de
classes d'équivalence dans les paramètres régionaux actuels.

Par exemple, si les six caractères a, à, á, â, ã, ä sont définis comme étant dans le même primaire
classe d'équivalence, les expressions entre parenthèses [[=a=]], [[=à=]]et [[=á=]] correspondre à l'un des
six.

Personnage les classes
A caractère classe représente un jeu de caractères prédéfini. Une classe de personnage est constituée
d'un nom de classe entre parenthèses spéciales [: et :]. Le shell consulte les paramètres régionaux
les données pour lesquelles la classe appartient à un personnage.

Les classes de caractères suivantes peuvent être utilisées dans tous les paramètres régionaux :

[:inférieur:]
ensemble de lettres minuscules

[:supérieur:]
ensemble de lettres majuscules

[:alpha:]
ensemble de lettres, y compris le [:inférieur:] et [:supérieur:] classes.

[:chiffre:]
ensemble de chiffres décimaux

[:xchiffre:]
ensemble de chiffres hexadécimaux

[:alnum:]
ensemble de lettres et de chiffres, y compris le [:alpha:] et [:chiffre:] classes.

[:Vide:]
ensemble de caractères vides, sans compter le caractère de nouvelle ligne

[:espacer:]
ensemble de caractères d'espacement, y compris le caractère de nouvelle ligne

[:ponct:]
ensemble de ponctuations

[:imprimer:]
ensemble de caractères imprimables

[:ctrl:]
ensemble de caractères de contrôle

Par exemple, l'expression entre parenthèses [[:inférieur :][:supérieur :]] correspond à une minuscule ou une majuscule
personnage. En plus des classes énumérées ci-dessus, d'autres classes peuvent être utilisées selon
la définition de la locale actuelle.

REDIRECTION


Redirection est une fonctionnalité que vous pouvez utiliser pour modifier les descripteurs de fichiers des commandes. En utilisant
redirection, vous pouvez exécuter des commandes avec leur entrée/sortie standard connectée à
des fichiers ou des périphériques autres que le terminal.

Vous pouvez faire une redirection en ajoutant des opérateurs de redirection à une commande (commande simple ou
commande composée) Dans une commande simple, les opérateurs de redirection peuvent apparaître n'importe où dans la
tant que les jetons d'opérateur sont séparés des autres jetons. Dans une commande composée,
les opérateurs de redirection doivent apparaître à la fin de la commande.

Les opérateurs de redirection sont traités avant l'exécution du corps de la commande. Plus d'un
opérateur de redirection dans une commande sont traités dans l'ordre d'apparition. Redirection
les opérateurs n'affectent que la commande dans laquelle ils apparaissent, sauf lorsqu'ils apparaissent dans un exec
intégré sans opérandes de commande. C'est-à-dire que les descripteurs de fichiers modifiés par la redirection sont
restauré une fois la commande terminée.

Un opérateur de redirection commence par < or >. Opérateurs de redirection commençant par < affecte
l'entrée standard (descripteur de fichier 0) par défaut. Opérateurs de redirection commençant par >
affecte la sortie standard (descripteur de fichier 1) par défaut. Pour affecter un autre fichier
descripteur, vous pouvez préfixer un opérateur de redirection avec un entier non négatif ; la
affectera le descripteur de fichier spécifié par l'entier. L'entier doit
précéder immédiatement le < or > sans aucun espace blanc entre les deux. L'entier ne doit pas être
cité non plus.

Redirection à fichiers
Le type de redirection le plus courant est la redirection vers des fichiers.

Redirection de l'entrée
< jeton

Redirection de sortie
> jeton

>| jeton

>> jeton

Redirection de l'entrée et de la sortie
<> jeton

Le manuel de formation jeton est soumis aux quatre expansions. Il est également sujet à l'expansion du nom de chemin si
le shell est interactif. Le résultat de l'expansion est traité comme le chemin d'accès du fichier à
quelle redirection est effectuée. Si l'expansion du nom de chemin n'aboutit pas à un seul
chemin d'accès, c'est une erreur.

Dans la redirection de l'entrée, l'entrée standard est remplacée par un descripteur de fichier qui est
ouvert pour un accès en lecture seule au fichier cible. Si le fichier cible ne peut pas être ouvert pour
accès en lecture seule, c'est une erreur.

Dans la redirection de sortie, la sortie standard est remplacée par un descripteur de fichier qui est
ouvert pour un accès en écriture seule au fichier cible. Si le fichier cible ne peut pas être ouvert pour
accès en écriture seule, c'est une erreur. Si le fichier cible n'existe pas, un nouveau fichier vide est
créé et ouvert. Si le fichier cible existe déjà, le fichier est ouvert comme suit :

· Pour le >| opérateur, le fichier est vidé à l'ouverture s'il s'agit d'un fichier normal.

· Pour le > opérateur, le comportement est le même que >| opérateur si l'option clobber
est autorisé. Si l'option est désactivée et que le fichier est un fichier normal, il est traité comme
une erreur.

· Pour le >> opérateur, le fichier est ouvert pour être ajouté ; toute sortie dans le fichier
le descripteur est ajouté à la fin du fichier.

En redirection d'entrée et de sortie, l'entrée standard est remplacée par un descripteur de fichier
qui est ouvert pour un accès en lecture et en écriture au fichier cible. Si le fichier n'existe pas, un
un nouveau fichier vide est créé et ouvert.

Douille redirection
Si le chemin du fichier cible est de la forme /dev/tcp/hôte/port or
/dev/udp/hôte/port et le fichier ne peut pas être ouvert de la manière habituelle, un nouveau socket est
ouvert à la communication avec le port du système hôte. La redirection remplace la
entrée ou sortie standard avec le descripteur de fichier sur le socket.

Un socket de flux est ouvert pour le formulaire /dev/tcp/hôte/port et un socket de datagramme pour
la forme /dev/udp/hôte/port. Le protocole réellement utilisé pour la communication est
déterminé par la bibliothèque de sockets utilisée par le shell. Généralement, les sockets de flux utilisent TCP et
sockets de datagramme UDP.

Dans la redirection de socket, le descripteur de fichier est à la fois lisible et inscriptible quel que soit
le type d'opérateur de redirection utilisé.

La redirection de socket est l'extension de yash qui n'est pas définie dans POSIX. Bash a aussi
redirection de socket comme extension.

Duplication of filet descripteurs
La redirection permet de dupliquer ou de fermer des descripteurs de fichiers existants.

Duplication de descripteur de fichier
<& jeton

>& jeton

Le manuel de formation jeton est sujet à expansion comme dans la redirection vers des fichiers, mais il est traité comme un fichier
descripteur plutôt qu'un nom de chemin. Ainsi l'élargissement jeton doit être un entier non négatif.

Le manuel de formation <& et >& les opérateurs dupliquent le descripteur de fichier spécifié par jeton au standard
entrée et sortie, respectivement. (Les opérateurs peuvent être préfixés par un entier non négatif
de sorte que le descripteur de fichier soit dupliqué dans un descripteur de fichier autre que le standard
entrée ou sortie.)

Si l'extension jeton est un simple trait d'union plutôt qu'un entier non négatif, le fichier
le descripteur est fermé plutôt que dupliqué. Par défaut, le <& et >& les opérateurs ferment
entrée et sortie standard, respectivement, mais les opérateurs peuvent être préfixés avec un
entier non négatif pour qu'un autre descripteur de fichier soit fermé.

En mode POSIXly-correct, un descripteur de fichier doit être lisible lorsqu'il est dupliqué par le <&
opérateur et accessible en écriture lorsqu'il est dupliqué par le >& opérateur.

Ici INSTITUTIONNELS et here. instruments à cordes
Ici document et here. un magnifique autoriser la redirection vers des descripteurs de fichiers qui lisent des chaînes
directement spécifié dans les commandes shell.

Ici documenter
<< jeton

<< - jeton

Ici chaîne
<< jeton

Dans un document here ou une chaîne here, l'entrée standard est remplacée par un fichier lisible
descripteur. Lorsque la commande lit à partir du descripteur de fichier, elle lira le contenu de
le document/chaîne ici, qui est défini ci-dessous.

Lorsqu'un opérateur de document ici (<< or << -) apparaît dans une commande, le shell lit le
contenu du document ici à partir de la ligne suivante. Le contenu de ces documents
ne sont pas analysés ni exécutés en tant que commandes. le jeton après l'opérande spécifie un délimiteur
qui indique la fin du contenu. (Le jeton ne fait l'objet d'aucune expansion, mais
le devis est traité.) Le contenu du présent document est terminé juste avant la
première ligne contenant le jeton seulement. Lors de l'utilisation du << - opérateur, tous les caractères de tabulation à
le début de chaque ligne dans le contenu du document ici est supprimé et le délimiteur
jeton peut être précédé de caractères de tabulation.

S'il y a plus d'un opérateur de document here sur une même ligne, le contenu de l'opérateur here
les documents sont analysés dans l'ordre : le contenu du premier document ici commence à partir du
ligne suivante et se termine avant la première ligne contenant le jeton qui a suivi le premier
opérateur. Juste après cette ligne, le contenu du deuxième document ici commence, et donc
sur.

Le contenu de ces documents est traité littéralement : les espaces, les tabulations, etc.
est. L'exception est que, lorsque le jeton n'est pas cité du tout :

· le contenu est sujet à l'expansion des paramètres, à la substitution de commandes, à l'arithmétique
vous propose d’explorer.

· une barre oblique inverse dans le contenu est traitée comme une citation si et seulement si elle précède $, `,
", ou une autre barre oblique inverse.

· une barre oblique inverse suivie d'une nouvelle ligne est traitée comme une continuation de ligne.

Dans cette chaîne, le jeton après que l'opérateur est soumis à l'expansion comme dans la redirection vers
des dossiers. Le résultat de l'expansion devient le contenu de la chaîne here. Un caractère de nouvelle ligne
est automatiquement ajouté à la fin du contenu de la chaîne ici.

Ici, string est l'extension de yash qui n'est pas définie dans POSIX. D'autres shells comme bash, ksh,
et zsh ont la même fonctionnalité.

Pipeline redirection
Pipeline redirection permet d'ouvrir des pipelines qui peuvent être utilisés à des fins arbitraires.

Redirection de pipeline
>>| jeton

Le manuel de formation jeton est sujet à expansion comme dans la redirection vers des fichiers, mais il est traité comme un fichier
descripteur plutôt qu'un nom de chemin. Ainsi l'élargissement jeton doit être un entier non négatif.

La redirection de pipeline ouvre un nouveau pipeline. La sortie standard (ou le descripteur de fichier
spécifié avant l'opérateur, le cas échéant) est remplacé par le descripteur de fichier ouvert pour
écrire dans le pipeline. Le descripteur de fichier spécifié par jeton est remplacé par le fichier
descripteur ouvert en lecture depuis le pipeline.

La redirection de pipeline est l'extension de yash qui n'est pas définie dans POSIX.

Processus redirection
Processus redirection crée un pipeline connecté à une autre commande.

Redirection de processus
<(commander...)

>(commander...)

Dans la redirection de processus, le commander spécifié est exécuté dans un sous-shell. Si le processus
la redirection est de la forme <(commander...), la sortie standard de commander est connecté avec
un pipeline vers l'entrée standard de la commande à laquelle la redirection est associée. Si la
la redirection de processus est de la forme >(commander...), l'entrée standard de commander is
connecté avec un pipeline à la sortie standard de la commande la redirection est
associé à.

La redirection de processus est l'extension de yash qui n'est pas définie dans POSIX. Bash et zsh ont un
fonctionnalité appelée substitution de processus, qui utilise la même syntaxe que le processus de yash
redirection, mais diffère de façon incompatible dans le comportement.

COMMAND EXÉCUTION


Cette section décrit comment les commandes sont exécutées.

Internationaux of simple commandes
Une commande simple est exécutée comme suit :

1. Tous les jetons de la commande simple sont développés à l'exception de l'affectation et de la redirection
jetons. Si une erreur survient lors de l'expansion, l'exécution de la commande simple est
abandonné avec un état de sortie différent de zéro.

Dans les étapes suivantes, le premier mot des résultats de développement est appelé
commander prénom, et les autres mots comme commander arguments. S'il n'y a qu'un seul mot de
les résultats de l'expansion, il n'y a pas de mots d'argument de commande. S'il n'y a aucun des
résultats d'expansion, il n'y a pas non plus de nom de commande.

2. La redirection spécifiée dans la commande, le cas échéant, est traitée. Le mot jeton après chaque
l'opérateur de redirection est développé. Si une erreur se produit lors du traitement de la redirection
(y compris lors de l'expansion du mot jeton), l'exécution de cette commande simple est
abandonné avec un état de sortie différent de zéro.

3. Les affectations spécifiées dans la commande, le cas échéant, sont traitées. Pour chaque devoir
token, la valeur est développée et affectée à la variable spécifiée. Si une erreur
se produit pendant les affectations (y compris lors de l'expansion des valeurs à affecter), la
l'exécution de cette commande simple est abandonnée avec un état de sortie différent de zéro.

· S'il n'y a pas de nom de commande ou si le nom désigne une fonction ou une fonction intégrée spéciale,
les affectations sont permanentes : les valeurs affectées restent après la commande
terminé (jusqu'à ce que la variable soit réaffectée).

· Sinon, les affectations sont temporaires : les valeurs affectées ne durent que le temps
l'exécution de cette simple commande.

Les variables affectées sont automatiquement exportées lorsque le nom de la commande est spécifié
ou l'option d'exportation totale est activée.

4. S'il n'y a pas de nom de commande, l'exécution de la commande se termine avec l'état de sortie de zéro
(sauf s'il existe des substitutions de commande dans la commande, auquel cas la sortie
l'état de la commande simple est celui de la dernière substitution de commande exécutée).

5. Une commande à exécuter est déterminée à l'aide de l'algorithme de recherche de commande et
la commande est exécutée.

· Si la commande est une commande externe, la commande est exécutée en créant un nouveau
sous-shell et en appelant l'appel système "exec" dans le sous-shell. Le nom de la commande et
les arguments sont passés à la commande exécutée. Les variables exportées sont transmises au
commande exécutée en tant que variables d'environnement.

· Si la commande est une fonction intégrée, la fonction intégrée est exécutée avec les arguments de la commande
passé à l'intégré.

· Si la commande est une fonction, le contenu de la fonction est exécuté avec le
arguments de commande comme arguments de fonction.

Si la commande a été exécutée, l'état de sortie de cette commande simple est celui de la
commande exécutée. Si l'algorithme n'a pas réussi à déterminer une commande, aucune commande n'est
exécuté et l'état de sortie est 127. Si le shell n'a pas réussi à exécuter le
commande, l'état de sortie est 126. Si la commande exécutée a été tuée par un signal, le
l'état de sortie est le numéro de signal plus 384.

Note
Dans les shells autres que yash, l'état de sortie peut être différent lorsque la commande a été
tué par un signal, car la norme POSIX exige uniquement que l'état de sortie
être "supérieur à 128".
Si le shell n'est pas en mode POSIXly-correct et que l'algorithme n'a pas réussi à déterminer
une commande, la commande eval -i -- "${COMMAND_NOT_FOUND_HANDLER-}" est évalué. Durant
l'exécution de la commande, les paramètres de position sont temporairement définis sur le nom de la commande
et les arguments qui ont abouti à la première étape. Toutes les variables locales définies lors de la
l'exécution sont supprimés lorsque l'exécution est terminée. le MANIPULÉ la variable locale est
automatiquement défini avec la valeur initiale étant la chaîne vide. Si la MANIPULÉ
la variable a une valeur non vide lorsque l'exécution de la chaîne de commande est terminée,
le shell prétend que la commande a été déterminée et exécutée avec succès. La sortie
le statut de la commande simple est celui de la chaîne de commande dans ce cas.

Command recherche
Une commande qui est exécutée dans une commande simple est déterminée par le nom de la commande en utilisant
l'algorithme suivant :

1. Si le nom de la commande contient une barre oblique (/), le nom entier est traité comme le
chemin d'accès d'une commande externe. La commande externe est déterminée comme la
commande exécutée.

2. Si le nom de la commande est une fonction intégrée spéciale, la fonction intégrée est déterminée comme
commande exécutée.

3. Si le nom de la commande est le nom d'une fonction existante, la fonction est
déterminé comme la commande exécutée.

4. Si le nom de la commande est une fonction intégrée semi-spéciale, la fonction intégrée est déterminée comme
commande exécutée.

5. Si le nom de la commande est une fonction intégrée normale, la fonction intégrée est déterminée comme
commande exécutée à moins que le shell ne soit en mode POSIXly-correct.

6. Le shell recherche dans le PATH une commande exécutée :

La valeur de l' PATH la variable est séparée par deux-points. Chaque partie séparée est
considéré comme un chemin d'accès au répertoire (un chemin d'accès vide indique le
annuaire). Le shell parcourt les répertoires (dans l'ordre d'apparition) et
vérifie si un répertoire contient directement un fichier régulier exécutable dont le nom est
égal au nom de la commande. Si un tel fichier est trouvé :

· Si le nom de la commande est le nom d'une fonction intégrée, la fonction intégrée est déterminée comme
la commande exécutée.

· Sinon, le fichier est déterminé comme la commande exécutée. (Le fichier sera
exécuté comme une commande externe.)

Si aucun fichier de ce type n'est trouvé, aucune commande n'est déterminée comme la commande exécutée.

Lorsque le shell trouve un fichier correspondant au nom de la commande lors de la recherche ci-dessus, le
shell se souvient du chemin du fichier s'il s'agit d'un chemin absolu. Lorsque l'algorithme
ci-dessus est à nouveau utilisé pour le même nom de commande, le shell ignore la recherche et directement
détermine la commande à exécuter. Si un fichier régulier exécutable n'existe plus
au chemin d'accès mémorisé, cependant, le shell effectue une nouvelle recherche pour mettre à jour le chemin d'accès mémorisé.
chemin d'accès. Vous pouvez gérer les noms de chemin mémorisés à l'aide du hachage intégré.

Résiliation of le coquille
Le shell se termine lorsqu'il a atteint la fin de l'entrée et a analysé et exécuté toutes les entrées
commandes ou lorsque la sortie intégrée est exécutée. L'état de sortie du shell est celui de
la dernière commande exécutée par le shell (ou zéro si aucune commande n'a été exécutée). La sortie
l'état du shell est toujours compris entre 0 et 255 (inclus). Si l'état de sortie du
la dernière commande est 256 ou plus, l'état de sortie du shell sera le reste de la
statut de sortie divisé par 256.

Si un gestionnaire de sortie a été enregistré par le trap intégré, le gestionnaire est exécuté juste
avant la sortie du shell. L'état de sortie des commandes exécutées dans le gestionnaire ne
affecter l'état de sortie du shell.

Si un shell non interactif rencontrait l'une des erreurs suivantes, le shell
sorties avec un état de sortie différent de zéro :

· Une commande ne peut pas être analysée en raison d'une erreur de syntaxe (sauf lors du shell
initialisation).

· Une fonction intégrée spéciale est exécutée en mode POSIXly-correct et les arguments de la commande
ne respectent pas la syntaxe des arguments de la fonction intégrée.

· Une erreur survient lors de la redirection ou de l'affectation dans une commande simple dont la commande
name est une fonction intégrée spéciale et le shell est en mode POSIXly-correct.

· Une erreur se produit lors de l'expansion (sauf lors de l'initialisation du shell).

Note
Certains shells autres que yash se terminent lorsqu'ils ne trouvent pas de commande à exécuter dans
recherche de commande.

Les fonctions
Les fonctions permettent d'exécuter une commande composée comme une simple commande. Une fonction peut être
défini par la commande de définition de fonction et exécuté par une simple commande. Vous pouvez utiliser
la fonction intégrée unset pour supprimer les définitions de fonctions.

Il n'y a pas de fonctions prédéfinies au démarrage de yash.

Une fonction est exécutée en exécutant son corps, qui est une commande composée. Tandis que le
fonction est en cours d'exécution, les paramètres de position sont définis sur les arguments donnés à la
une fonction. Les anciens paramètres de position sont restaurés à la fin de l'exécution de la fonction.

Local les variables
Local les variables sont des variables temporaires qui sont définies dans une fonction et existent
pendant l'exécution de la fonction uniquement. Ils peuvent être définis par le typet intégré. Ils
sont supprimés à la fin de l'exécution de la fonction.

Les variables locales peuvent cacher variables déjà définies avant la fonction
l'exécution avait commencé. Une variable existante devient inaccessible si une variable locale
du même nom est défini dans une fonction. L'ancienne variable redevient accessible
lorsque l'exécution de la fonction se termine.

Vous ne pouvez pas créer de variable locale lorsque vous n'exécutez pas de fonction. Une variable normale est
créé si vous essayez de le faire.

Command efficace convivial
Le shell contient les propriétés suivantes lors de l'exécution.

· Le répertoire de travail

· Ouvrir les descripteurs de fichiers

· Le masque de création de fichier (umask)

· L'ensemble des signaux dont le gestionnaire est réglé sur "ignorer" (trap)

· Variables d'environnement

· Limites de ressources (ulimit)

Ces propriétés sont héritées de l'invocateur du shell vers le shell, et du
shell à chaque commande externe exécutée par le shell.

Les propriétés peuvent être modifiées lors de l'exécution du shell par des commandes intégrées,
affectations variables, etc.

Sous-coquilles
A sous-coquille est une copie du processus shell. Les sous-shells sont utilisés dans l'exécution de
groupements, pipelines, etc.

Les sous-shells héritent des fonctions, des alias, etc. définis dans le shell ainsi que du
propriétés ci-dessus puisque les sous-shells sont des copies du processus shell. Exceptions notables
sont:

· Les traps enregistrés par le trap intégré sont tous réinitialisés dans les sous-shells à l'exception de ceux
dont l'action est définie sur "ignorer". (Voir ci-dessous)

· Le mode interactif et le contrôle des tâches sont désactivés dans les sous-shells. Les emplois ne sont pas
hérité par les sous-shells.

Les sous-shells sont exécutés indépendamment du shell d'origine, donc les changements de n'importe quel
les propriétés ci-dessus n'affectent pas celles du shell d'origine.

Note
Si le sous-shell contient un seul piège intégré, certains shells (mais pas yash) peuvent
ne réinitialise pas les déroutements à l'entrée du sous-shell.

INTERACTIF MODE


Le manuel de formation Interactif mode est un mode du shell destiné à l'interaction directe avec un utilisateur.
Si yash est en mode interactif, cela s'appelle un Interactif coquille.

Le fait qu'un shell s'exécute en mode interactif ou non est déterminé lors de l'invocation du
coquille. Après le démarrage du shell, le mode interactif ne peut pas être activé ou désactivé.

Lorsque le shell est interactif :

· Les scripts d'initialisation sont exécutés lors de l'invocation.

· Le shell vérifie le courrier et imprime une invite de commande lorsqu'il lit une commande. Emploi
les changements d'état sont également signalés si le contrôle des travaux est actif. L'édition de ligne peut être utilisée
selon la capacité du terminal.

· Les commandes exécutées sont automatiquement enregistrées dans l'historique des commandes.

· Si une commande exécutée par le shell est tuée par un signal autre que SIGINT et
SIGPIPE, le shell signale le fait à l'erreur standard.

· Le jeton de nom de fichier est sujet à l'expansion du nom de chemin dans la redirection de fichier.

· L'entrée standard d'une commande asynchrone n'est pas automatiquement redirigée vers
/dev/null (en mode POSIXly-correct uniquement).

· Le shell ne se ferme pas lorsqu'il rencontre une erreur de syntaxe ou d'expansion lors de la commande
exécution. (cf. Terminaison du shell)

· Le shell ne se ferme pas lorsqu'il reçoit le signal SIGINT, SIGTERM ou SIGQUIT.

· Un gestionnaire de signal peut être modifié par le piège intégré même si le gestionnaire a été défini
pour "ignorer" quand le shell a été invoqué.

· La valeur de la - paramètre spécial contient i.

· Les paramètres régionaux du shell reflètent la valeur du LC_CTYPE variable chaque fois que la valeur est
modifié (si le shell n'est pas en mode POSIXly-correct).

· Les commandes sont exécutées même lorsque l'option exec est désactivée.

· L'option ignore-eof prend effet lorsqu'elle est activée.

· Lorsque le shell atteint la fin de l'entrée ou que la sortie intégrée est exécutée, le shell
vérifie s'il y a un travail arrêté. Si c'est le cas, le shell affiche un avertissement et ne
réellement sortir.

· La suspension intégrée par défaut ne peut pas arrêter le shell s'il s'agit d'un leader de session.

· Le shell ne se ferme pas lorsque le point intégré ne parvient pas à trouver un fichier de script à lire.

· Le shell ne se ferme pas lorsque la fonction intégrée exec ne parvient pas à exécuter une commande (si elle n'est pas dans
le mode POSIX-correct).

· Lorsqu'un travail terminé pour lequel l'attente intégrée attendait, le fait est signalé
(uniquement si le contrôle des tâches est actif et non en mode POSIXly-correct).

· Une invite est imprimée lorsque la lecture intégrée lit une deuxième ligne ou la ligne suivante.

Instructions
Le shell interactif imprime un prompt juste avant de lire une commande. Le contenu de la
l'invite est spécifiée par la valeur de PS1 et PS2 variables. Le premier est utilisé pour
lire la première ligne de la commande et la seconde pour les autres lignes.

Lorsque l'invite est imprimée, la valeur de la variable est soumise à l'expansion des paramètres,
la substitution de commandes et l'expansion arithmétique (mais notez que la norme POSIX nécessite
extension de paramètres uniquement). Le résultat de l'expansion est analysé par les règles ci-dessous pour
créer la chaîne d'invite réelle, qui est imprimée à l'erreur standard.

En mode POSIXly-correct, chaque point d'exclamation (!) dans la chaîne est remplacé par
le numéro d'historique de commande de la commande en cours d'entrée. Deux points d'exclamation adjacents
Des marques (!!) sont imprimés comme une seule exclamation. Les autres caractères sont imprimés intacts.

Si le shell n'est pas en mode de commande POSIXly, les notations suivantes peuvent être utilisées pour
formater la chaîne d'invite. Les notations sont remplacées par les chaînes désignées dans la liste
au dessous de. Les caractères qui ne sont pas interprétés comme des notations sont imprimés intacts.

\a
Caractère cloche (code ASCII : 7)

\e
Caractère d'échappement (code ASCII : 27)

\j
Le nombre de tâches dans le shell.

\n
Caractère de saut de ligne (code ASCII : 10)

\r
Caractère de retour chariot (code ASCII : 13)

\!
Le numéro d'historique de commande de la commande en cours de saisie

\$
# si l'ID utilisateur effectif du shell est 0 ; $ autrement.

\\
Barre oblique inverse

\[, \]
Ces deux notations peuvent entourer une partie de la chaîne d'invite qui n'est pas visible sur le
Terminal. La partie entourée est ignorée lorsque la coque compte le nombre de
caractères qui s'affiche sur le terminal, rendant ainsi les caractères correctement alignés
sur le terminal lorsque la chaîne d'invite contient des caractères invisibles spéciaux.

\fspécifications de police.
Lorsque l'édition de ligne est active, cette notation est remplacée par des caractères spéciaux pour
changer les styles de police sur le terminal si le terminal en est capable. Si l'édition de ligne
est inactif ou le terminal est incapable de changer les styles de police, cette notation est
ignoré en silence. Un ou plusieurs des éléments suivants peuvent être utilisés pour spécifications de police:

k
Changer la couleur de la police en noir

r
Changer la couleur de la police en rouge

g
Changer la couleur de la police en vert

y
Changer la couleur de la police en jaune

b
Changer la couleur de la police en bleu

m
Changer la couleur de la police en magenta

c
Changer la couleur de la police en cyan

w
Changer la couleur de la police en blanc

K
Changer la couleur de fond en noir

R
Changer la couleur de fond en rouge

G
Changer la couleur de fond en vert

Y
Changer la couleur de fond en jaune

B
Changer la couleur de fond en bleu

M
Changer la couleur de fond en magenta

C
Changer la couleur de fond en cyan

W
Changer la couleur de fond en blanc

t
Rendre la couleur de la police ou l'arrière-plan plus lumineux (ne peut être utilisé qu'après l'un des
caractères ci-dessus)

d
Changer les couleurs de police et d'arrière-plan en normal

s
Faire ressortir la police

u
Rendre la police soulignée

v
Rendre la police et les couleurs d'arrière-plan inversées

b
Faire clignoter la police

i
Assombrir la police

o
Mettre la police en gras

x
Rendre la police invisible

D
Rendre la couleur et le style normaux

Les couleurs réelles de la police et de l'arrière-plan sont définies par le terminal. Différent
les terminaux peuvent utiliser des couleurs différentes.

En plus de l'invite normale, une chaîne d'invite peut être affichée à droite de
curseur si l'édition de ligne est active. Ces invites sont appelées bien instructions. Le contenu de
les invites de droite sont définies par la valeur de PS1R et PS2R variables, chacune correspondant
à la PS1 et PS2 variables.

En utilisant les notations ci-dessus, le style de police des chaînes de commande entrées par l'utilisateur peut être
modifié ainsi que celui des invites. Le style de police des chaînes de commande est défini par le
valeur de la PS1S et PS2S variables, chacune correspondant à la PS1 et PS2 variables. Les
la valeur peut contenir le \fspécifications de police. notation uniquement.

Lorsque le shell n'est pas en mode POSIXly-correct, la valeur de PROMPT_COMMAND
variable est exécutée avant chaque invite.

Command Histoire
Command Histoire est une fonctionnalité du shell qui se souvient des commandes exécutées pour permettre
les ré-exécuter plus tard. Les commandes exécutées en mode interactif sont automatiquement enregistrées
dans l'historique des commandes. Les commandes enregistrées peuvent être modifiées et réexécutées à l'aide de l'édition de ligne
et les fonctions intégrées fc et history.

Les commandes sont enregistrées ligne par ligne. Lignes ne contenant aucun caractère autre qu'un espace
ne sont pas enregistrés dans l'historique. Les lignes commençant par des espaces ne sont pas enregistrées lorsque le
l'option hist-space est activée.

L'historique des commandes est enregistré dans un fichier. Lorsque l'historique est utilisé pour la première fois après un shell interactif
a été démarré, le shell ouvre un fichier dans lequel enregistrer l'historique. Le nom du fichier est spécifié par le
valeur de la FICHIER HIST variable. Si le fichier contient des données d'historique lors de son ouverture, les données sont
restitué à l'histoire de la coquille. Le contenu du fichier est mis à jour en temps réel au fur et à mesure que l'utilisateur
entre les commandes dans le shell. Si la FICHIER HIST la variable n'est pas définie ou le fichier ne peut pas être
ouvert avec succès, l'historique n'est pas enregistré dans le fichier, mais la fonction d'historique sera
fonctionnel à tous autres égards.

Le nombre de commandes enregistrées dans l'historique est spécifié par la valeur du TAILLE HIST
variable. Le shell supprime automatiquement les anciennes données d'historique afin que le nombre de
commandes ne dépasse pas la valeur. Si la TAILLE HIST la variable n'est pas définie ou sa valeur est
n'est pas un nombre naturel, 500 éléments seront enregistrés dans l'historique.

Le shell regarde la valeur de FICHIER HIST et TAILLE HIST variables uniquement lorsque l'historique
La fonctionnalité est utilisée pour la première fois après le démarrage du shell. "La fonctionnalité d'historique est utilisée" lorsque :

· le fc ou l'historique intégré est exécuté,

· l'édition de ligne est utilisée (indépendamment du fait que les données d'historique sont rappelées ou non dans
modification de ligne), ou

· une commande est entrée dans le shell

Par conséquent, les variables doivent être définies dans les scripts d'initialisation.

Lorsque plusieurs instances de yash partagent un même fichier d'historique, tous les shells utilisent le
mêmes données historiques. Par conséquent, les commandes qui ont été exécutées par une instance de shell peuvent
être rappelé sur une autre instance de shell. Les coquillages partageant le même historique doivent avoir la
même TAILLE HIST valeur afin qu'ils manipulent correctement les données d'historique.

Le fichier de données d'historique de Yash a son propre format qui est incompatible avec d'autres types de
coquillages.

Le manuel de formation HISTRMDUP La variable peut être définie pour supprimer les éléments d'historique en double.

Mail vérification
Un shell interactif peut notifier la réception d'email. Le shell vérifie périodiquement le
date/heure de modification d'un fichier spécifié par l'utilisateur. Si le fichier a été modifié
depuis la vérification précédente, le shell affiche un message de notification (sauf lorsque le shell
n'est pas en mode POSIXly-correct et le fichier est vide). En spécifiant un fichier de boîte aux lettres à
cochée, le shell affichera un message lorsque le fichier aura été modifié, c'est-à-dire
courrier a été reçu.

La vérification est effectuée juste avant que le shell n'imprime une invite de ligne de commande. L'intervalle des contrôles
peut être spécifié par le VÉRIFICATION DU COURRIER variable en secondes. Si la valeur de la variable est 0, vérifiez
est effectué avant chaque invite. Si la valeur de la variable n'est pas un entier non négatif, aucun
les vérifications sont faites.

Le fichier dont l'heure de modification est vérifiée est spécifié par le MAIL variable. le
La valeur de la variable doit être définie sur le chemin du fichier.

Si vous souhaitez vérifier plusieurs fichiers ou personnaliser le message de notification, vous pouvez définir
le CHEMIN DE COURRIER variables au lieu de la MAIL variable. Quand le CHEMIN DE COURRIER variable est définie, le
MAIL variable est ignorée. La valeur de la CHEMIN DE COURRIER variable doit être définie sur un ou plusieurs
chemins d'accès séparés par deux-points des fichiers à vérifier. Chaque nom de chemin peut être suivi d'un
signe pourcentage (%) et un message de notification personnalisé, qui est imprimé lorsque le
le fichier correspondant a été modifié. Si le chemin contient un signe de pourcentage, il doit
être cité par une barre oblique inverse. Le message spécifié est sujet à l'expansion des paramètres. Pour
exemple, si la valeur de la CHEMIN DE COURRIER la variable est /foo/mail%Nouveau mail!:/bar/mailbox%Vous avez
eu mail:/baz/mail\%données, le shell imprimera

· New courrier! lorsque le fichier /foo/mail a été modifié

· Vous avez eu E-mail lorsque le fichier /bar/mailbox a été modifié

· le message par défaut lorsque le fichier /baz/mail%data a été modifié.

JOB CONTRÔLE


Emploi des bactéries est une fonction du shell qui exécute plusieurs commandes simultanément et
suspend/reprend les commandes.

Lorsque le contrôle est actif :

· Chaque pipeline exécuté par le shell devient un JOB. Un travail a son groupe de processus unique
ID partagé entre tous les processus du travail.

· Si les processus d'un travail sont suspendus pendant que le shell attend les processus
pour terminer, le shell passe à la commande suivante comme si le processus était terminé.
Le shell mémorise le travail comme suspendu afin qu'il puisse être repris plus tard.

· Si un travail est exécuté de manière synchrone, le shell définit le groupe de processus de premier plan du
terminal au groupe de processus du travail. Lorsque le travail est terminé (ou suspendu), le
shell revient au premier plan.

· Le sous-shell exécutant une substitution de commande a son propre ID de groupe de processus unique comme
un travail. Cependant, le shell ne se souvient pas du sous-shell en tant que travail, il ne peut donc pas être
suspendu ou repris.

· Si le shell est interactif, l'état du travail est signalé avant chaque invite de ligne de commande
comme si la commande emplois -n est exécuté.

· L'entrée standard d'une commande asynchrone n'est pas automatiquement redirigée vers
/dev/null (sauf en mode POSIXly-correct).

· Le shell ne se ferme pas lorsqu'il reçoit le signal SIGTSTP.

· La valeur de la - paramètre spécial contient m.

· Lorsqu'un travail terminé pour lequel l'attente intégrée attendait, le fait est signalé
(uniquement si le shell est interactif et non en mode POSIXly-correct).

Lorsque le contrôle des tâches est inactif, les processus exécutés par le shell ont le même groupe de processus
ID en tant que shell. Le shell traite les commandes asynchrones comme une tâche non contrôlée.

Vous pouvez utiliser les éléments intégrés suivants pour manipuler les tâches :

emplois
imprime les travaux existants

fg et bg
exécuter des tâches au premier plan ou en arrière-plan

attendez
attend que les travaux soient terminés (ou suspendus)

renier
oublie les emplois

tuer
envoie un signal aux emplois

Par défaut, un shell interactif de contrôle des tâches signale l'état des tâches avant chaque invite.
Vous pouvez définir les options suivantes pour que le shell signale l'état à d'autres moments :

notifier
le shell signale immédiatement chaque changement d'état du travail.

notifier-le
le shell signale immédiatement lorsque l'état du travail change pendant l'édition de ligne.

Une tâche est supprimée de la liste des tâches du shell lorsque :

· il est terminé et le statut "terminé" est signalé,

· la fonction intégrée d'attente a attendu avec succès la fin du travail, ou

· le désaveu intégré a supprimé le travail.

Note
Le mot « arrêter » est synonyme de « suspendre » dans le contexte du contrôle des travaux.

Emploi ID
Certaines fonctions intégrées utilisent la notation suivante, appelée JOB ID, pour spécifier un travail à
fonctionner sur :

%, %%, %+
le travail actuel

%-
le travail précédent

%n
le travail qui a un numéro de travail n, Où n est un entier positif

%un magnifique
le travail dont le nom commence par un magnifique

%?un magnifique
le travail dont le nom contient un magnifique

Le manuel de formation actuel JOB et précédent JOB sont des tâches sélectionnées par le shell selon les critères suivants
règles:

· Lorsqu'il y a une ou plusieurs tâches suspendues, la tâche en cours est sélectionnée parmi celles-ci.

· Lorsqu'il y a une ou plusieurs tâches suspendues autres que la tâche en cours, la tâche précédente
est sélectionné parmi eux.

· Les travaux actuels et précédents sont toujours différents. Lorsque le shell n'a qu'un seul travail,
c'est le travail actuel et il n'y a pas de travail précédent.

· Lorsque le travail en cours est terminé, le travail précédent devient le travail en cours.

· Lorsque le travail en cours est modifié, l'ancien travail en cours devient le travail précédent sauf
lorsque l'ancien travail est terminé.

· Lorsque le travail de premier plan est suspendu, le travail devient le travail en cours.

Yash a quelques options pour modifier les règles de la sélection de travail actuelle/précédente. (Le
les règles ci-dessus ont priorité sur les options ci-dessous.)

cur-asynchrone
Lorsqu'une nouvelle commande asynchrone est lancée, elle devient le travail en cours.

cur-bg
Lorsqu'un travail est repris par le bg intégré, le travail devient le travail en cours.

cur-stop
Lorsqu'un travail est suspendu, il devient le travail en cours.

Les travaux actuels et précédents ne sont pas modifiés tant que les règles ci-dessus sont respectées.

Les règles de sélection des tâches en cours/précédentes définies dans la norme POSIX sont plus souples
que les règles de yash ci-dessus. D'autres shells compatibles POSIX peuvent sélectionner l'actuel et le précédent
emplois différemment.

SLIP INTÉGRÉ COMMANDES


Encastré commandes sont des commandes implémentées dans le shell et exécutées par le
shell sans programmes externes.

Types of intégré commandes
Il existe trois types de commandes intégrées dans yash : les commandes intégrées spéciales,
commandes intégrées semi-spéciales et commandes intégrées régulières.

Spécial intégré commandes sont des commandes beaucoup plus importantes que d'autres. Ils sont exécutés
que les commandes externes correspondantes existent ou non. Resultats de
les affectations de variables qui se produisent dans une commande simple qui appelle un dernier intégré spécial
une fois la commande terminée. De plus, en mode POSIXly-correct, un non-interactif
shell se termine immédiatement avec un état de sortie différent de zéro lorsqu'une erreur de redirection, une affectation
une erreur ou une mauvaise utilisation de l'option ou de l'opérande se produit dans une commande intégrée spéciale.

Semi pour un spécial intégré commandes sont les deuxièmes commandes intégrées importantes. Elles sont
exécuté indépendamment du fait que les commandes externes correspondantes existent ou non. En d'autre
elles sont identiques aux commandes intégrées habituelles.

Régulier intégré commandes sont des commandes intégrées moins importantes, y compris des commandes qui peuvent
être implémentés en tant que commandes externes ou ne sont pas répertoriés dans POSIX. Dans le POSIX-correct
mode, une commande intégrée normale n'est exécutée que lorsqu'une commande externe correspondante est trouvée
dans CHEMIN.

Syntaxe of commander arguments
Dans cette section, nous expliquons les règles communes concernant les arguments de commande. Les commandes intégrées de
yash suivre les règles sauf indication contraire.

Il existe deux types d'arguments de commande. L'un est les options et l'autre les opérandes. Une
option est un argument qui commence par un trait d'union (-) et change la façon dont la commande
se comporte. Certaines options prennent des arguments. Un opérande est un argument qui n'est pas une option et
spécifie les objets sur lesquels la commande agit.

Si vous spécifiez plus d'une option pour une commande, l'ordre des options est normalement
insignifiant. L'ordre des opérandes, cependant, affecte le comportement de la commande.

Une option est soit une option à caractère unique, soit une option longue. Une option à caractère unique
est identifié par un caractère alphabétique. Une option longue est identifiée par plusieurs
caractères alphabétiques. La norme POSIX ne prescrit que des options à un seul caractère, donc dans
le mode POSIXly-correct, vous ne pouvez pas utiliser d'options longues.

Une option à caractère unique est composée d'un trait d'union suivi d'une lettre. Par exemple, -a is
une option à un seul caractère. Une option à caractère unique qui prend un argument nécessite la
l'argument juste après le nom de l'option.

Exemple 4. Le manuel de formation set intégré et caractère unique Options

Pour l'ensemble intégré, -m est une option à caractère unique qui ne prend pas d'argument et
-o est celui qui prend un argument.

· set -o erresort -m

· set -oerrexit -m

Dans ces deux lignes de commande, erresort est l'argument de la -o option.

Dans le deuxième exemple ci-dessus, le -o option et son argument sont combinés en un seul
argument de ligne de commande. Le standard POSIX déconseille ce style et tout autre format conforme à POSIX.
les applications doivent spécifier les options et leurs arguments en tant qu'arguments de ligne de commande séparés,
bien que yash accepte les deux styles.

Vous pouvez combiner des options à caractère unique qui ne prennent pas d'arguments dans une seule commande
argument de ligne. Par exemple, les trois options -a, -b et -c peuvent être combinés en -abc.

Une option longue est composée de deux traits d'union suivis d'un nom d'option. Par exemple,
--option-longue est une option longue. Vous pouvez omettre certains derniers caractères d'un long nom d'option comme
tant que ce n'est pas ambigu. Par exemple, vous pouvez utiliser --longue au lieu de --option-longue if
il n'y a pas d'autres options commençant par --longue. Comme une option à un seul caractère, une longue
option qui prend un argument nécessite que l'argument soit un argument de ligne de commande juste
après le nom de l'option ou à spécifier dans le même argument de ligne de commande que l'option
nom, séparé par un signe égal (=).

Exemple 5. Le manuel de formation fc intégré et Long Options

Pour le fc intégré, --silencieux est une option longue qui ne prend pas d'argument et --éditeur
est celui qui prend un argument.

· fc --éditeur vi --silencieux

· fc --éditeur=vi --silencieux

Dans ces lignes de commande, vi est l'argument de la --éditeur option.

Les arguments qui ne sont pas des options (ni leurs arguments) sont interprétés comme des opérandes. le
La norme POSIX exige que toutes les options soient spécifiées avant tout opérande. Par conséquent, dans
le mode POSIXly-correct, tous les arguments qui viennent après le premier opérande sont interprétés
comme opérandes (même s'ils ressemblent à des options). Si vous n'êtes pas en mode POSIXly-correct, vous pouvez
spécifiez les options après l'opérande.

Que le shell soit en mode POSIXly-correct ou non, un argument qui est
juste composé de deux traits d'union (--) peut être utilisé comme séparateur entre les options et les opérandes.
Tous les arguments de la ligne de commande après le -- séparateur sont interprétés comme des opérandes, vous pouvez donc
spécifiez correctement les opérandes qui commencent par un trait d'union à l'aide du séparateur.

Exemple 6. Options et opérandes à le set intégré

· set -a -b -- -c -d

Dans cet exemple, -a et -b sont des options et -c et -d sont des opérandes. le -- séparateur lui-même
n'est ni une option ni un opérande.

Que le shell soit en mode POSIXly-correct ou non, un argument qui est
juste composé d'un seul trait d'union (-) est interprété comme un opérande.

ÉDITION DE LIGNE


Avec la collection édition de ligne fonctionnalité, vous pouvez modifier le texte de la commande lorsque vous saisissez une commande pour
une coque interactive. Il fonctionne non seulement comme un simple éditeur d'interface visuelle, mais est également
intégré à l'historique des commandes. Vous pouvez rappeler, modifier et exécuter des commandes dans le
history avec l'édition de ligne au lieu d'utiliser le fc intégré.

L'édition de ligne a deux modes d'édition, les modes vi et emacs, qui ont chacun leur propre clé
paramètres de liaison. En changeant de mode d'édition, vous pouvez modifier les raccourcis clavier utilisés dans
édition de ligne. Chaque mode a une option shell correspondante, qui détermine si le
mode est actuellement actif ou non. Pas plus d'un mode ne peut être actif à la fois, donc le
les options des autres modes sont automatiquement désactivées lorsque vous activez l'option pour
un mode. Toute la fonction d'édition de ligne est désactivée lorsque ces options sont désactivées.

Lorsqu'un shell interactif est démarré, le mode vi est automatiquement activé si le
l'entrée standard et l'erreur sont toutes deux connectées à un terminal.

L'édition de ligne ne peut être utilisée que lorsque l'entrée standard et l'erreur sont toutes deux connectées à un
Terminal. Si ce n'est pas le cas, le shell revient silencieusement au mécanisme d'entrée normal. Tandis que
l'édition de ligne est utilisée, le shell utilise l'interface termios pour modifier les paramètres d'E/S de
le terminal et l'interface terminfo pour analyser les séquences de touches d'entrée.

coquille Options on édition de ligne
Les options suivantes peuvent être définies par l'ensemble intégré pour activer l'édition de ligne et choisir un
mode édition pour activer :

vi
active le mode vi.

emacs
active le mode emacs.

Les autres options liées à l'édition de ligne sont :

le-toujours-rp
Lorsque cette option est activée, l'invite de droite est toujours visible : lorsque le curseur
atteint l'invite de droite, il passe à la ligne suivante à partir de la position d'origine, ce qui
serait autrement écrasé par le texte saisi.

le-comp-debug
Lorsqu'elle est activée, les informations internes sont imprimées lors de l'achèvement, ce qui aidera
débogage des scripts de complétion.

le-conv-méta
Lorsqu'il est activé, le 8ème bit de chaque octet d'entrée est toujours traité comme un indicateur de méta-clé,
quelles que soient les données terminfo.

le-no-conv-méta
Lorsqu'il est activé, le 8ème bit de chaque octet d'entrée n'est jamais traité comme un indicateur de méta-clé,
quelles que soient les données terminfo.

Les options le-conv-meta et le-no-conv-meta ne peuvent pas être activées simultanément. Lorsque
l'un est activé, l'autre est automatiquement désactivé. Lorsque ni l'un ni l'autre n'est activé, le
Le 8e bit peut être traité comme un indicateur de méta-clé en fonction des données terminfo.

le-invite-sp
Lorsqu'il est activé, le shell imprime une séquence de caractères spéciaux avant d'imprimer chaque
invite afin que chaque invite soit imprimée au début d'une ligne.

Cette option est activée par défaut.

le-visible-cloche
Lorsqu'il est activé, le shell fait clignoter le terminal au lieu de déclencher une alarme lorsqu'un
une alerte est requise.

Le Montage modes
Le manuel de formation vi mode est un mode d'édition qui propose des raccourcis clavier similaires à ceux de l'éditeur vi.
Le mode vi a deux sous-modes qui sont commutés pendant l'édition : l'insertion et la commande
modes. Le sous-mode est toujours réinitialisé au mode d'insertion lorsque l'édition de ligne est lancée pour un
nouvelle ligne de commande. En mode insertion, la plupart des caractères sont insérés dans le tampon tels qu'ils ont été saisis.
En mode commande, les caractères saisis sont traités comme des commandes qui déplacent le curseur,
insérer/supprimer du texte, etc.

Le manuel de formation emacs mode propose des raccourcis clavier similaires à l'éditeur emacs. La plupart des personnages sont
inséré dans le tampon comme tapé, mais plus de caractères sont traités comme des commandes que le vi
mode d'insertion.

Un autre sous-mode est utilisé lors de la saisie des mots-clés de recherche. Le sous-mode est appelé le
recherche mode, qui propose des raccourcis clavier légèrement différents en fonction de l'édition active
.

Édition de ligne commandes
Tous les caractères saisis par l'utilisateur pendant que l'édition de ligne est active sont traités comme de l'édition de ligne
commandes listées ci-dessous. Le bindkey intégré permet de personnaliser les raccourcis clavier de chaque
mode (sauf pour le mode de recherche).

La liste ci-dessous montre non seulement les fonctions des commandes mais aussi les raccourcis clavier par défaut.
Les mots clés « vi-insert », « vi-command », « vi-search », « emacs », « emacs-search » désignent le vi
mode d'insertion, le mode de commande vi, le mode de recherche pour le mode vi (le mode de recherche vi),
le mode emacs, et le mode de recherche pour le mode emacs (le mode de recherche emacs),
respectivement.

Certaines commandes prennent un argument qui affecte la fonction des commandes. Par exemple, le
La commande forward-char déplace le curseur d'autant de caractères que spécifié par l'argument.
Pour spécifier un argument, utilisez la commande digit-argument juste avant une autre commande qui
prend un argument.

Basic édition commandes
non
Ne fais rien.

commande vi
\^[

alerter
Alerte.

auto-insertion
Insère le caractère saisi à la position actuelle du curseur. Personnages échappés par
les séquences d'échappement ne peuvent pas être insérées.

vi-insert, emacs
\\

insertion onglet
Insère un caractère de tabulation à la position actuelle du curseur.

emacs
\^[\^Je

attendre-verbatim
Insère un caractère saisi juste après cette commande au niveau du curseur courant
position. Cette commande peut saisir un caractère qui ne peut pas être saisi par le
commande d'auto-insertion, à l'exception d'un caractère nul ('\0').

vi-insertion, vi-recherche, emacs-recherche
\^V

emacs
\^Q, \^V

argument-chiffre
Passez le chiffre d'entrée à la commande suivante en tant qu'argument.

Cette commande peut être liée à un chiffre ou à un trait d'union. Pour passer "12" comme argument à la
commande forward-char en mode vi, par exemple, entrez 12L.

commande vi
1, 2, 3, 4, 5, 6, 7, 8, 9

emacs
\^[0, \^[1, \^[2, \^[3, \^[4, \^[5, \^[6, \^[7, \^[8, \^[9, \^[-,

bol ou chiffre
Comme la commande de début de ligne s'il n'y a pas d'argument ; comme le
commande digit-argument sinon.

commande vi
0

ligne d'acceptation
Terminer l'édition de la ligne courante. Une nouvelle ligne est automatiquement ajoutée à la ligne.
La ligne sera exécutée par le shell.

vi-insert, vi-commande, emacs, emacs-search
\^J, \^M

ligne d'abandon
Abandonne le tampon actuel et termine l'édition comme si une ligne vide était entrée.

vi-insert, vi-commande, vi-search, emacs, emacs-search
\!, \^C

eof
Abandonnez le tampon actuel et terminez l'édition comme si le shell avait atteint la fin de
contribution. Cela fait normalement sortir le shell.

eof-si-vide
Comme la commande eof si le tampon est vide ; comme la commande alert sinon.

vi-insertion, vi-commande
\#, \^D

eof-ou-supprimer
Comme la commande eof si le tampon est vide ; comme la commande delete-char
autrement.

emacs
\#, \^D

accepter-avec-hachage
Comme la commande accept-line, mais :

· Un signe dièse (#) est inséré en début de ligne s'il n'y en a pas.

· Sinon, le signe dièse est supprimé du début de la ligne.

commande vi
#

emacs
\^[#

setmode-viinsert
Passez en mode d'insertion vi.

commande vi
i, \I

setmode-vicommande
Passez en mode de commande vi.

vi-insérer
\^[

setmode-emacs
Passez en mode emacs.

attendre-char, abandonner-attendre-char
Ces commandes ne sont pas destinées à être utilisées par l'utilisateur. Ils sont utilisés par le shell pour
mettre en œuvre d'autres commandes.

tout redessiner
Réimprimez l'invite et la ligne actuelle sur le terminal.

vi-insert, vi-commande, vi-search, emacs, emacs-search
\^L

tout effacer et tout redessiner
Effacez le terminal et réimprimez l'invite et la ligne actuelle.

Mouvement commandes
Mouvement commandes déplacer le curseur sur la ligne. La plupart des commandes de mouvement acceptent un argument.
Lorsqu'un argument leur est passé, ils répètent le mouvement du curseur autant de fois que spécifié par
l'argument. En passant "4" comme argument à la commande forward-char, par exemple,
avance le curseur de quatre caractères.

Le shell a plusieurs définitions de mots comme unités de distance : A grand mot est un ou
plus de caractères non blancs adjacents. UNE demi-mot est un ou plusieurs caractères adjacents
qui ne contiennent ni espaces ni ponctuations. Une emacsword est un ou plusieurs adjacents
caractères alphanumériques. UNE viword est soit:

· un ou plusieurs caractères alphanumériques adjacents et/ou traits de soulignement (_), ou

· un ou plusieurs caractères adjacents ne contenant aucun caractère alphanumérique,
les traits de soulignement et les espaces blancs.

avant-char
Déplacez le curseur sur le caractère suivant.

vi-insérer
\R

commande vi
l, (espacer), \R

emacs
\R, \^F

caractère-arrière
Déplacez le curseur sur le caractère précédent.

vi-insérer
\L

commande vi
h, \B, \L, \?, \^H

emacs
\L, \^B

avant-bigword
Déplacez le curseur vers le mot clé suivant.

commande vi
W

fin de bigword
Déplacez le curseur à la fin suivante d'un grand mot.

commande vi
E

arrière-bigword
Déplacez le curseur vers le mot clé précédent.

commande vi
B

demi-mot avant
Déplacez le curseur sur le demi-mot suivant.

fin de demi-mot
Déplacez le curseur à la fin suivante d'un demi-mot.

demi-mot inversé
Déplacez le curseur sur le demi-mot précédent.

avant-viword
Déplacez le curseur vers le viword suivant.

commande vi
w

fin de viword
Déplacez le curseur à la fin suivante d'un viword.

commande vi
e

arrière-viword
Déplacez le curseur sur le viword précédent.

commande vi
b

avant-emacsword
Déplacez le curseur vers l'emacsword suivant.

emacs
\^[f, \^[F

emacsword à l'envers
Déplacez le curseur sur l'emacsword précédent.

emacs
\^[b, \^[B

début de ligne
Déplacez le curseur au début de la ligne.

vi-insertion, vi-commande
\H

emacs
\H, \^A

fin de ligne
Déplacez le curseur à la fin de la ligne.

vi-insérer
\E

commande vi
$, \E

emacs
\E, \^E

aller à la colonne
Déplacez le curseur sur le nème caractère sur la ligne, où n est l'argument. Supposer
n = 1 lorsqu'il n'y a pas d'argument.

commande vi
|

premier non vide
Déplacez le curseur sur le premier caractère non vide de la ligne.

commande vi
^

trouver-char
Déplacez le curseur à la première position où un caractère saisi juste après
cette commande apparaît après la position actuelle du curseur.

commande vi
f

emacs
\^]

trouver-char-rev
Déplacez le curseur à la dernière position où un caractère saisi juste après
cette commande apparaît avant la position actuelle du curseur.

commande vi
F

emacs
\^[\^]

jusqu'à char
Déplacez le curseur à la première position juste avant un caractère saisi juste
après que cette commande s'affiche après la position actuelle du curseur.

commande vi
t

jusqu'à-char-rev
Déplacez le curseur à la dernière position juste après un caractère saisi juste
après que cette commande s'affiche avant la position actuelle du curseur.

commande vi
T

retrouver-char
Répétez la dernière commande find-char, find-char-rev, till-char, till-char-rev.

commande vi
;

retrouver-char-rev
Répétez la dernière commande find-char, find-char-rev, till-char, till-char-rev dans le
direction inverse.

commande vi
,

Le Montage commandes
Les commandes d'édition modifient le contenu du tampon. La plupart des commandes d'édition acceptent un
argument. Lorsqu'on leur passe un argument, ils répètent la modification autant de fois que
spécifié par l'argument.

Les textes supprimés par les commandes dont le nom commence par "kill" sont enregistrés dans tuer bague, de
dont le contenu supprimé peut être restauré dans le tampon. Les 32 textes les plus récents sont
gardé dans l'anneau de mise à mort.

supprimer-char
Supprime un caractère à la position actuelle du curseur si aucun argument n'est passé ; aimer
la commande kill-char sinon.

vi-insert, emacs
\X

supprimer-bigword
Supprime un bigword à la position actuelle du curseur si aucun argument n'est passé ; comme le
commande kill-bigword sinon.

supprimer un demi-mot
Supprime un demi-mot à la position actuelle du curseur si aucun argument n'est passé ; aimer
la commande kill-semiword sinon.

supprimer-viword
Supprime un viword à la position actuelle du curseur si aucun argument n'est passé ; comme le
commande kill-viword sinon.

supprimer-emacsword
Supprime un emacsword à la position actuelle du curseur si aucun argument n'est passé ; aimer
la commande kill-emacsword sinon.

back-delete-char
Supprime un caractère juste avant la position actuelle du curseur si aucun argument n'est
passé ; comme la commande back-kill-char sinon.

vi-insert, emacs
\B, \?, \^H

arrière-supprimer-bigword
Supprime un bigword juste avant la position actuelle du curseur si aucun argument n'est passé ;
comme la commande back-kill-bigword sinon.

arrière-supprimer-semi-mot
Supprimer un demi-mot juste avant la position actuelle du curseur si aucun argument n'est
passé ; comme la commande back-kill-semiword sinon.

vi-insérer
\^W

arrière-supprimer-viword
Supprime un viword juste avant la position actuelle du curseur si aucun argument n'est passé ;
comme la commande back-kill-viword sinon.

vers l'arrière-supprimer-emacsword
Supprimer un emacsword juste avant la position actuelle du curseur si aucun argument n'est
passé ; comme la commande back-kill-emacsword sinon.

supprimer-ligne
Supprimez tout le contenu du tampon.

avant-supprimer-ligne
Supprime tous les caractères depuis la position actuelle du curseur jusqu'à la fin du tampon.

ligne de suppression arrière
Supprime tous les caractères avant la position actuelle du curseur.

vi-insérer
\$, \^U

tuer-char
Supprimer un caractère à la position actuelle du curseur et l'ajouter au kill ring.

commande vi
x, \X

tuer-grand mot
Supprimer un bigword à la position actuelle du curseur et l'ajouter au kill ring.

tuer-semi-mot
Supprime un demi-mot à la position actuelle du curseur et l'ajoute au kill ring.

tuer-viword
Supprimer un viword à la position actuelle du curseur et l'ajouter au kill ring.

tuer-emacsword
Supprimer un emacsword à la position actuelle du curseur et l'ajouter au kill ring.

emacs
\^[d, \^[D

back-kill-char
Supprimer un caractère juste avant la position actuelle du curseur et l'ajouter au kill
bague.

commande vi
X

back-kill-bigword
Supprimer un bigword juste avant la position actuelle du curseur et l'ajouter au kill
bague.

emacs
\^W

arrière-tuer-semi-mot
Supprimer un demi-mot juste avant la position actuelle du curseur et l'ajouter au kill
bague.

arrière-tuer-viword
Supprimer un viword juste avant la position actuelle du curseur et l'ajouter au kill
bague.

back-kill-emacsword
Supprimer un emacsword juste avant la position actuelle du curseur et l'ajouter au kill
bague.

emacs
\^[\B, \^[\ ?, \^[\^H

ligne de mort
Supprimez tout le contenu du tampon et ajoutez-le au kill ring.

ligne de mise à mort avant
Supprimer tous les caractères depuis la position actuelle du curseur jusqu'à la fin du tampon
et ajoutez-le au kill ring.

emacs
\^K

en arrière-kill-line
Supprimer tous les caractères avant la position actuelle du curseur et l'ajouter au kill
bague.

emacs
\$, \^U, \^X\B, \^X\ ?

mettre avant
Insérez le dernier texte supprimé avant la position actuelle du curseur et déplacez le curseur
jusqu'au dernier caractère inséré.

commande vi
P

mettre
Insérer le dernier texte supprimé après la position actuelle du curseur et déplacer le curseur
jusqu'au dernier caractère inséré.

commande vi
p

mettre à gauche
Insérez le dernier texte supprimé avant la position actuelle du curseur et déplacez le curseur
jusqu'au dernier caractère inséré.

emacs
\^O

mettre-pop
Remplacez le texte que vous venez de mettre par le prochain texte supprimé plus ancien.

Cette commande ne peut être utilisée que juste après le put-before, put, put-left ou put-pop
commander.

emacs
\^[y, \^[O

défaire
Annuler la modification par la dernière commande d'édition.

vi
u

emacs
\^_, \^X\$, \^X\^U

défaire tout
Annule toute modification dans le tampon courant, en restaurant le contenu initial.

vi
U

emacs
\^[\^R, \^[r, \^[R

annuler-annuler
Annuler l'annulation par la dernière commande d'annulation ou d'annulation de tout.

vi
\^R

annuler-annuler-tout
Annuler toutes les annulations par toutes les commandes d'annulation et d'annulation complètes les plus récentes.

refaire
Répéter la modification par la dernière commande d'édition.

commande vi
.

Aboutissement commandes
complet
Complétez un mot juste avant la position du curseur et, s'il y en a plusieurs
candidat, montrez une liste des candidats.

compléter-le-prochain-candidat
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le prochain candidat de la liste.

vi-insert, emacs
\^je

candidat-précédent-complet
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le candidat précédent dans la liste.

vi-insert, emacs
\bt

compléter la colonne suivante
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le premier candidat dans la colonne suivante de la liste.

colonne-précédente-complète
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le premier candidat de la colonne précédente de la liste.

compléter la page suivante
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le premier candidat de la page suivante de la liste.

compléter la page précédente
Comme la commande complète lorsque les candidats ne sont pas répertoriés ; sinon, sélectionnez
le premier candidat de la page précédente de la liste.

Liste complète
Complétez un mot juste avant la position du curseur.

Si vous ne transmettez aucun argument, une liste de candidats à l'achèvement s'affiche. Sinon, le
le mot est complété par le ne candidat où n est l'argument.

emacs
\^[ ?, \^[=

tout-complet
Remplacer un mot juste avant la position du curseur par toutes les complétions possibles
candidats, séparés chacun par un espace.

emacs
\^[*

complet-max
Complétez un mot juste avant la position du curseur avec le préfixe le plus long de tous
candidats potentiels à l'achèvement.

clair-candidats
Effacer la liste des candidats à l'achèvement.

Spécifique à Vi commandes
vi-remplacer-char
Remplacez le caractère à la position du curseur par un caractère saisi juste
après cette commande.

commande vi
r

vi-insert-début
Déplacez le curseur au début de la ligne et passez en mode d'insertion vi.

commande vi
I

vi-ajouter
Déplacez le curseur sur le caractère suivant et passez en mode d'insertion vi.

commande vi
I

vi-ajouter-à-eol
Déplacez le curseur à la fin de la ligne et passez en mode d'insertion vi.

commande vi
A

vi-remplacer
Passez en mode d'insertion vi et commencez à écraser. Lors de l'écrasement, le
la commande d'auto-insertion remplace le caractère à la position du curseur plutôt que
l'insertion d'un caractère. L'écrasement se termine lorsque le mode d'édition est changé.

commande vi
R

vi-switch-case
Changer la casse des caractères entre la position actuelle et la position suivante du curseur. Cette
la commande doit être suivie d'une commande de mouvement, qui détermine le prochain curseur
position.

vi-switch-case-char
Changer la casse du caractère à la position actuelle du curseur et déplacer le curseur sur
le personnage suivant.

commande vi
~

vi-tirer
Ajoutez au kill ring les caractères entre les positions actuelle et suivante du curseur.
Cette commande doit être suivie d'une commande de mouvement, qui détermine le prochain
position du curseur.

commande vi
y

vi-yank-à-eol
Ajouter au kill ring les caractères depuis la position actuelle du curseur jusqu'à la fin de
la ligne.

commande vi
Y

vi-supprimer
Supprimez les caractères entre les positions actuelle et suivante du curseur et ajoutez-les à la
anneau de mise à mort. Cette commande doit être suivie d'une commande de mouvement, qui détermine la
position suivante du curseur.

commande vi
d

vi-supprimer-vers-eol
Supprimez les caractères depuis la position actuelle du curseur jusqu'à la fin de la ligne et
ajoutez-le au kill ring.

commande vi
D

vi-changer
Supprimez les caractères entre les positions actuelle et suivante du curseur et passez à la
vi mode d'insertion. Cette commande doit être suivie d'une commande de mouvement, qui
détermine la position suivante du curseur.

commande vi
c

vi-changement-en-eol
Supprimez les caractères depuis la position actuelle du curseur jusqu'à la fin de la ligne et
passer en mode d'insertion vi.

commande vi
C

vi-change-ligne
Supprimez tout le contenu du tampon et passez en mode d'insertion vi.

commande vi
S

vi-tirer-et-changer
Comme la commande vi-change, mais le texte supprimé est ajouté au kill ring.

vi-yank-et-change-en-eol
Comme la commande vi-change-to-eol, mais le texte supprimé est ajouté au kill ring.

vi-tirer-et-changer-de-ligne
Comme la commande vi-change-line, mais le texte supprimé est ajouté au kill ring.

vi-substitut
Supprimez un caractère à la position actuelle du curseur, ajoutez-le au kill ring et
passer en mode d'insertion vi.

commande vi
s

vi-append-dernier-grand-mot
Insérez un espace et le dernier grand mot dans l'entrée la plus récente de l'historique des commandes juste
après la position actuelle du curseur et passer en mode d'insertion vi. Si argument n
est passé, le nLe ième mot clé de l'entrée est inséré à la place du dernier.

commande vi
_

vi-exec-alias
Exécute la valeur d'un alias nommé _c comme commandes d'édition où c est un personnage
entrée juste après cette commande.

commande vi
@

vi-modifier-et-accepter
Démarrez l'éditeur vi pour modifier le contenu actuel du tampon. Lorsque l'éditeur a terminé,
le contenu du tampon édité est accepté comme la commande accept-line à moins que le
l'état de sortie de l'éditeur est différent de zéro.

commande vi
v

vi-liste-complète
Comme la commande complete-list, mais aussi passer en mode d'insertion vi.

commande vi
=

vi-complet-tout
Comme la commande complete-all, mais aussi passer en mode d'insertion vi.

commande vi
*

vi-complet-max
Comme la commande complete-max, mais aussi passer en mode d'insertion vi.

commande vi
\\

vi-recherche avant
Passez en mode de recherche vi et lancez la recherche dans l'historique.

commande vi
?

vi-recherche en arrière
Passez en mode de recherche vi et lancez la recherche dans l'historique en arrière.

commande vi
/

Spécifique à Emacs commandes
emacs-transpose-chars
Déplacer un caractère juste avant le curseur vers la droite.

emacs
\^T

emacs-transposer-mots
Déplacez un emacsword juste avant le curseur vers la droite.

emacs
\^[t, \^[T

emacs-downcase-word
Faites un emacsword juste après le curseur en minuscules.

emacs
\^[l, \^[L

emacs-mot-majuscule
Faites un emacsword juste après le curseur en majuscule.

emacs
\^[tu, \^[U

emacs-capitaliser-mot
Mettez en majuscule la première lettre d'un emacsword juste après le curseur.

emacs
\^[c, \^[tu

emacs-supprimer-espace-horizontal
Supprimez les espaces autour du curseur. Si un argument a été passé, supprimez les espaces juste
avant le curseur uniquement.

emacs
\^[\\

emacs-juste-un-espace
Supprimez les espaces autour du curseur et laissez un espace. Si un argument est spécifié,
laisser autant d'espaces que l'argument.

emacs
\^[ (Échap suivi d'un espace)

emacs-recherche-avant
Passez en mode de recherche emacs et lancez la recherche dans l'historique.

emacs
\^S

emacs-recherche-arrière
Passez en mode de recherche emacs et lancez la recherche dans l'historique.

emacs
\^R

Liés à l'histoire commandes
histoire la plus ancienne
Rappeler l'entrée la plus ancienne de l'historique. Si argument n est passée, l'entrée dont
le numéro est n est rappelé à la place. La position du curseur reste inchangée.

histoire la plus récente
Rappeler l'entrée la plus récente dans l'historique. Si argument n est passée, l'entrée dont
le numéro est n est rappelé à la place. La position du curseur reste inchangée.

historique des retours
Retourne au tampon initial correspondant à aucune des entrées d'historique existantes. Si
argument n est passé, l'entrée dont le numéro est n est rappelé à la place. Le curseur
position reste inchangée.

histoire-la-plus-ancienne-bol
Rappeler l'entrée la plus ancienne de l'historique et déplacer le curseur au début de la
ligne. Si argument n est passé, l'entrée dont le numéro est n est rappelé à la place.

commande vi
G

plus récent-histoire-bol
Rappeler l'entrée la plus récente dans l'historique et déplacer le curseur au début de la
ligne. Si argument n est passé, l'entrée dont le numéro est n est rappelé à la place.

retour-historique-bol
Revenir au tampon initial correspondant à aucune des entrées d'historique existantes et
déplacer le curseur au début de la ligne. Si argument n est passé, l'entrée
dont le numéro est n est rappelé à la place.

commande vi
g

histoire-la-plus-ancienne-eol
Rappelle l'entrée la plus ancienne de l'historique et déplace le curseur à la fin de la ligne.
Si argument n est passé, l'entrée dont le numéro est n est rappelé à la place.

emacs
\^[

histoire-récente-eol
Rappelle l'entrée la plus récente dans l'historique et déplace le curseur à la fin de la ligne.
Si argument n est passé, l'entrée dont le numéro est n est rappelé à la place.

retour-historique-eol
Revenir au tampon initial correspondant à aucune des entrées d'historique existantes et
déplacer le curseur à la fin de la ligne. Si argument n est passée, l'entrée dont
le numéro est n est rappelé à la place.

emacs
\^[>

histoire-prochaine
Rappeler la prochaine entrée de l'historique. La position du curseur reste inchangée.

historique-précédent
Rappeler l'entrée précédente de l'historique. La position du curseur reste inchangée.

suivant-histoire-bol
Rappelle l'entrée suivante de l'historique et déplace le curseur au début de la ligne.

commande vi
j, +, \D, \^N

prev-historique-bol
Rappeler l'entrée précédente de l'historique et déplacer le curseur au début de la
ligne.

commande vi
k, -, \U, \^P

histoire-suivante-eol
Rappeler l'entrée suivante de l'historique et déplacer le curseur à la fin de la ligne.

vi-insert, emacs
\D, \^N

histoire-prev-eol
Rappeler l'entrée précédente de l'historique et déplacer le curseur à la fin de la ligne.

vi-insert, emacs
\U, \^P

chercher à nouveau
Répétez la dernière recherche dans l'historique des commandes.

commande vi
n

rechercher-encore-rev
Répétez la dernière recherche dans l'historique des commandes dans le sens inverse.

commande vi
N

recherche-encore-en avant
Répétez la dernière recherche dans l'historique des commandes vers l'avant.

rechercher à nouveau en arrière
Répétez la dernière recherche dans l'historique des commandes dans le sens inverse.

début-recherche-avant
Rappeler la prochaine entrée de l'historique qui commence par le même texte que le texte de la
début de la ligne jusqu'à la position actuelle du curseur. La position du curseur
reste inchangé.

début-recherche-arrière
Rappeler l'entrée d'historique précédente qui commence par le même texte que le texte de
le début de la ligne jusqu'à la position actuelle du curseur. La position du curseur
reste inchangé.

Rechercher mode commandes
srch-auto-insertion
Insère le caractère saisi à la position actuelle du curseur. Personnages échappés par
les séquences d'échappement ne peuvent pas être insérées.

vi-recherche, emacs-recherche
\\

srch-backward-delete-char
Supprimez le dernier caractère du texte de recherche. Si le texte est vide :

· comme la commande srch-abort-search en mode de recherche vi, ou

· comme la commande alert en mode de recherche emacs.

vi-recherche, emacs-recherche
\B, \?, \^H

srch-arrière-supprimer-ligne
Supprimez tout le texte de recherche.

vi-recherche, emacs-recherche
\$, \^U

srch-continuer-avant
Trouvez la prochaine entrée d'historique correspondante.

emacs-recherche
\^S

srch-continuer-en arrière
Recherchez l'entrée d'historique correspondante précédente.

emacs-recherche
\^R

srch-accepter-recherche
Terminez le mode de recherche en acceptant le résultat affiché.

vi-recherche
\^J, \^M

emacs-recherche
\^J, \^[

srch-abandon-recherche
Abandonner la recherche et restaurer le contenu précédent du tampon.

vi-recherche
\^[

emacs-recherche
\^G

Échapper séquences
Dans le bindkey intégré, les séquences d'échappement sont utilisées pour représenter des clés spéciales telles que
touches de fonction et touches fléchées. Chaque séquence d'échappement commence par une barre oblique inverse (\) Et ainsi
il existe également une séquence d'échappement pour une barre oblique inverse elle-même.

Vous trouverez ci-dessous les séquences d'échappement disponibles :

\\
Barre oblique inverse (\)

\B
Retour arrière

\D
Flèche vers le bas

\E
Fin

\H
Accueil

\I
Insérer (Insert-char, Enter-insert-mode)

\L
Flèche gauche

\N
Page vers le bas (page suivante)

\P
Page précédente (page précédente)

\R
Flèche droite

\U
Flèche vers le haut

\X
Supprimer

\!
Intrigueur

\#
EOF

\$
KILL

\?
EFFACER

\^@
Ctrl + @

\^A, \^B, ..., \^Z
Ctrl + A, Ctrl + B, ..., Ctrl + Z

Notez que Ctrl + I, Ctrl + J et Ctrl + M sont tabulation, saut de ligne et retour chariot,
respectivement.

\^[
Ctrl + [ (Échap)

\^\
Ctrl + \

\^]
Ctrl +]

\^^
Ctrl + ^

\^_
Ctrl+_

\^ ?
Ctrl + ? (Effacer)

\F00, \F01, ..., \F63
F0, F1, ..., F63

\a1
En haut à gauche sur le clavier

\a3
En haut à droite sur le clavier

\b2
Centrer sur le clavier

\bg
Début

\bt
Languette arrière

\c1
En bas à gauche sur le clavier

\c3
En bas à droite sur le clavier

\Californie
Effacer tous les onglets

\cl
Fermer

\cn
Annuler

\co
Command

\cp
Copier

\c
Créer

\cs
Effacer l'écran ou effacer

\ct
Effacer l'onglet

\dl
Supprimer la ligne

\ei
Sortir du mode insertion

\el
Clair jusqu'à la fin de la ligne

\oui
Effacer jusqu'à la fin de l'écran

\et
Entrer (Envoyer)

\ex
Sortie

\fd
Trouvez

\hp
Aidez

\il
Insertion de ligne

\ll
À la maison

\moi
Message

\mk
Mark

\Mme
Événement de souris

\mv
Move

\nx
Objet suivant

\sur
Open

\op
Options

\pr
Imprimer (Copier)

\pv
Objet-précédent

\rd
Refaire

\ré
Curriculum vitae

\rf
Réf (Référence)

\rh
Refresh

\rp
remplacer

\rs
Recommencer

\sf
Défilement vers l'avant (Défilement vers le bas)

\sl
Choisir

\sr
Défilement vers l'arrière (Scroll-up)

\St
Set-onglet

\su
Suspendre

\sv
Enregistrer

\ud
annuler

\SE
Maj + Fin

\SH
Maj + Accueil

\SI
Maj + Insérer

\SL
Maj + Flèche gauche

\SR
Maj + flèche droite

\SX
Maj + Suppr

\Sbg
Maj + Début

\Écran
Maj + Annuler

\Sco
Maj + Commande

\Scp
Maj + Copier

\Écr
Maj + Créer

\Sdl
Maj + Suppr-ligne

\Sélection
Maj + fin de ligne

\Sexe
Maj + Quitter

\Sfd
Maj + Rechercher

\Shp
Maj + Aide

\Smg
Maj + Message

\Smv
Maj + Déplacer

\Snx
Maj + Suivant

\Amadouer
Maj + Options

\Spr
Maj + Imprimer

\Sv
Maj + Précédent

\Srd
Maj + Rétablir

\Sre
Maj + Reprendre

\Srp
Maj + Remplacer

\Ssu
Maj + Suspendre

\Sv
Maj + Enregistrer

\Sud
Maj + Annuler

INTR, EOF, KILL et ERASE sont des caractères spéciaux configurés par la commande stty. Dans un
configuration typique, ils sont envoyés en tapant Ctrl+C, Ctrl+D, Ctrl+U et Ctrl+H,
respectivement, mais certaines configurations utilisent Ctrl+ ? au lieu de Ctrl+H pour EFFACER.

Command en ligne achèvement
En utilisant les commandes complete et complete-next-candidate, etc., vous pouvez terminer la commande
noms, options et opérandes. Par défaut, la commande complete-next-candidate est liée
avec la touche Tab dans les modes vi insert et emacs.

Tapez quelques premières lettres d'un nom de commande ou d'un chemin d'accès et appuyez sur la touche Tab, et une liste de
les noms correspondants seront affichés. Vous pouvez choisir un candidat dans la liste pour compléter le
nom en appuyant à nouveau sur la touche Tab. S'il n'y a qu'un seul nom correspondant, aucune liste ne sera
affiché et le nom sera directement complété.

Si le nom à compléter contient des caractères comme * et ?, il est traité comme un modèle.
Le nom sur la ligne de commande sera directement remplacé par tous les noms possibles correspondant
le motif (vous ne pouvez pas choisir dans une liste).

Normalement, les noms de commande sont complétés par les noms de commande et les arguments de commande par
noms de chemin. Cependant, achèvement fonctions peuvent être définis pour affiner les résultats d'achèvement.

Aboutissement détails
Lors de la complétion pour la première fois après le démarrage du shell, la commande INIT
le fichier est chargé comme si la chaîne de commande . -AL achèvement/INIT est exécuté. Si le dossier
n'est pas trouvé, il est ignoré en silence. Ce chargement automatique est principalement destiné aux
chargement des fonctions de complétion fournies avec le shell, mais vous pouvez laisser le shell se charger
vos propres fonctions en plaçant un fichier dans le chemin de chargement.

Lors de la saisie d'un nom de commande, le shell exécute le achèvement // commande fonction
et lors de la complétion d'un argument de commande, le achèvement//argument fonction. Si ceux
les fonctions de complétion ne sont pas définies, le shell se contente de compléter avec les noms de commande ou
noms de chemin. Lorsque vous complétez d'autres noms, tels que le nom d'utilisateur dans l'extension tilde et
le nom du paramètre dans l'expansion des paramètres, les fonctions de complétion ne sont jamais utilisées :
shell se termine simplement avec les noms d'utilisateurs, les noms de paramètres ou tout ce qui est applicable.

Les fonctions de complétion sont exécutées sans arguments. Les variables locales suivantes
sont automatiquement définis lors de l'exécution des fonctions de complétion :

IFS
La valeur est constituée des trois caractères d'un espace, d'une tabulation et d'une nouvelle ligne, qui sont les
valeur par défaut de la variable.

MOTS
Cette variable est un tableau dont les éléments sont un nom de commande et des arguments qui
ont déjà été saisies avant la fin de l'argumentation. Lors de la réalisation d'un
nom de la commande, le tableau ne contient aucun élément.

MOT CIBLE
La valeur est le nom de commande partiellement entré ou l'argument qui est
achevé.

Les candidats à l'achèvement sont générés en exécutant l'intégré complete au cours d'une
fonction de complétion.

Les fonctions de complétion ne doivent pas effectuer d'E/S vers le terminal, sinon le texte affiché sera
corrompu. Les fonctions de complétion doivent s'exécuter aussi rapidement que possible pour un meilleur utilisateur
expérience.

Pendant l'exécution d'une fonction de complétion :

· le mode POSIXly-correct est temporairement désactivé,

· l'option err-exit est temporairement désactivée, et

· les pièges ne sont pas exécutés.

POSIXLY-CORRECT MODE


Yash se comporte comme défini dans POSIX.1-2008, Shell & Utilities pour la plupart, mais certains
les fonctionnalités désobéissent à POSIX pour la convivialité. Lorsqu'une conformité POSIX complète est nécessaire, vous
peut activer la POSIX-correct mode pour que yash obéisse à POSIX autant que possible.

Si yash est démarré avec le nom "sh", le mode POSIXly-correct est automatiquement activé.
Le manuel de formation -o posixly-correct L'option de ligne de commande active également le mode POSIXly-correct. Après
yash a été démarré, le mode POSIXly-correct peut être activé en exécutant la commande
un magnifique set -o posixly-correct.

Lorsque le mode POSIXly-correct est activé, yash essaie non seulement d'obéir aux exigences en
POSIX, mais traite également comme des erreurs la plupart des conditions où le comportement est indéfini or
non spécifié par POSIX. Par conséquent, la plupart des fonctionnalités spécifiques à Yash sont désactivées dans le
Mode POSIX-correct.

Vous trouverez ci-dessous la liste complète des différences de comportement entre le moment où le yash est dans le
Mode POSIXly correct et quand non. Lorsque le mode POSIXly-correct est activé :

· Différents scripts d'initialisation sont utilisés.

· Les alias globaux ne sont pas remplacés.

· Les commandes imbriquées dans une commande composée ne doivent pas être vides.

· Les mots développés dans une boucle for sont affectés en tant que variable globale plutôt qu'en variable locale.
La variable doit avoir un nom portable (ASCII uniquement). Un point-virgule avant do ne peut pas
apparaître sans in après le nom de la variable.

· Le premier motif d'une commande case ne peut pas être Esac.

· Le fonction Le mot-clé ne peut pas être utilisé pour la définition de la fonction. La fonction doit avoir un
nom portable (ASCII uniquement).

· Les commandes simples ne peuvent pas être affectées à des tableaux.

· Modification de la valeur du LC_CTYPE variable après que le shell a été initialisé fait
n'affecte pas les paramètres régionaux du shell.

· Le RANDOM La variable ne peut pas être utilisée pour générer des nombres aléatoires.

· L'extension Tilde ne s'étend que ~ et ~Nom d'utilisateur.

· L'extension des paramètres ne peut pas être imbriquée. Aucun index n'est autorisé.

· Les commandes dans une substitution de commande de la forme $(commandes) sont analysés à chaque fois
la substitution est exécutée.

· Dans le développement arithmétique, les nombres fractionnaires et les ++ et -- les opérateurs ne peuvent pas être
utilisé. Toutes les variables doivent être numériques.

· Lors d'une redirection vers un fichier, si l'expansion du chemin a donné plus d'un ou aucun
pathname, il n'est pas immédiatement traité comme une erreur. Au lieu de cela, le shell essaie de traiter
le mot avant l'expansion comme nom de chemin.

· La redirection de socket, ici les chaînes, la redirection de canal et la redirection de processus ne peuvent pas être
utilisé.

· Lors de l'exécution d'une commande simple, l'échec de la recherche de commande ne déclenche pas l'exécution
du système COMMAND_NOT_FOUND_HANDLER variable.

· Dans la recherche de commande, un intégré standard doit avoir une commande externe correspondante
pour que l'intégré soit trouvé.

· les commandes asynchrones ignorent les signaux SIGINT et SIGQUIT même lorsque le contrôle des tâches est
actif. L'entrée standard des commandes asynchrones est redirigée vers /dev/null si le
shell n'est pas interactif, que le contrôle des tâches soit actif ou non.

· Certains éléments intégrés se comportent différemment. En particulier, certaines options de ligne de commande ne peuvent pas être
utilisé.

· Un shell non interactif se termine lorsqu'une fonction intégrée spéciale reçoit une syntaxe erronée
arguments ou lorsqu'une erreur se produit dans l'affectation ou la redirection avec un
intégré.

· Un shell interactif n'exécute pas le PROMPT_COMMAND variable avant d'imprimer un
rapide. Les valeurs de la PS1, PS2et PS4 les variables sont analysées différemment.

· En vérification du courrier, un message de notification est imprimé si le fichier a été modifié,
que le fichier soit vide ou non.

FRÉQUEMMENT DEMANDÉ des boutons QUESTIONS ET DÉPANNAGE


Le manuel de formation défaut prompt is trop Facile...
Sans fichier yashrc, yash est presque identique à un shell POSIX brut. Mettez l'échantillon yashrc
dans votre répertoire personnel (~/.yashrc) et personnalisez-le comme vous le souhaitez.

Comment la Vous pouvez I utilisé Unicode (non ASCII) personnages?
Vous devez définir des variables d'environnement locales pour activer la prise en charge des caractères Unicode.

Si les variables ont déjà été configurées selon vos préférences, vous n'avez probablement pas
faire n'importe quoi. Pour vérifier les configurations locales actuelles, vous pouvez utiliser le local
commander:

$ paramètres régionaux
LANGUE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

Dans cet exemple, le local La commande indique que toutes les catégories de paramètres régionaux sont
configuré pour la langue anglaise, la région des États-Unis et le codage UTF-8.

Si la configuration actuelle ne semble pas correspondre à vos préférences, réglez le LC_TOUS
variable comme ceci :

exporter LC_ALL=en_US.utf8

Si vous souhaitez utiliser d'autres langues, régions ou encodages, vous devez définir la variable sur
une valeur différente. Veuillez consulter la documentation de votre système d'exploitation pour savoir comment configurer ces
variables en détail.

Si vous souhaitez appliquer la même configuration à chaque démarrage de yash, écrivez la commande
in ~/.yashrc or ~/.yash_profile.

Si yash refuse toujours la saisie de caractères Unicode, consultez la section ci-dessous concernant
édition de ligne.

Édition de ligne ne pas travail
Tout d'abord, tapez echo TERME $ et voir s'il imprime un sain valeur. xterm est la valeur la plus sûre qui
devrait fonctionner sur n'importe quel environnement existant. Des versions colorées comme xterm-16color et d'autres
types de terminaux comme rxvt et vt100 peut aussi fonctionner. Toutes les valeurs possibles peuvent être listées par le
orteil commande. Il est préférable de choisir une valeur qui corresponde au type de terminal réel
que vous utilisez, mais cela peut ne pas fonctionner si le type de terminal que vous avez choisi n'est pas pris en charge sur
le système sur lequel yash est exécuté. Si c'est le cas, essayez de changer le TERME valeur par Exporter
TERME=xterme, par exemple, pour trouver une valeur qui fonctionne.

Si l'édition de ligne fonctionne mais que vous rencontrez des difficultés pour saisir des caractères Unicode (non-ASCII), essayez
activant l'option le-no-conv-meta en set -o le-no-conv-méta.

FORMELLE DÉFINITION OF COMMAND SYNTAXE


Ce chapitre définit la syntaxe des commandes shell comme une grammaire d'expression d'analyse.

L'ensemble des terminaux de la grammaire est l'ensemble des caractères manipulables sur le
environnement dans lequel le shell est exécuté (aka jeu de caractères d'exécution), à l'exception
que l'ensemble ne contient pas le caractère nul ('\0').

Vous trouverez ci-dessous une liste de non-terminaux de la grammaire avec les expressions d'analyse correspondantes. La
La liste n'inclut pas les règles d'analyse du contenu et de la fin des documents ici. Dans le
Mode POSIXly-correct, la grammaire varie de la liste ci-dessous pour désactiver non-POSIX
fonctionnalités

TerminerCommande
SéquenceEOF

Séquence
N* Liste*

Liste
Canalisation ((&& / ||) N* Pipeline)* ListSeparator

Pipeline
Pan? Commande (|Commande N*)*

Command
RedirectionCommandComposée* /

!RFonctionDéfinition /

!R Commande Simple

Commande composée
Sous-shell / Regroupement / IfCommand / ForCommand / WhileCommand / CaseCommand /
FonctionCommand

Sous-shell
(Séquence)S*

regroupement
BraceGaucheSéquenceBraceDroite

SiCommand
IfSequenceThen Sequence (Elif Sequence Then Sequence)* (Else Sequence) ? Fi

PourCommand
ForNameS* Séparateur ? (Séparateur InWord*) ? DoSequenceDone

Tandis que la commande
(Pendant / Jusqu'à) SequenceDo Sequence Done

Commande de cas
CaseWordN* Dans N* CaseItem* Esac

Élément de cas
!Esac ((S*) ? Mot (| Épée)* )Séquence (;; / &Ésac)

FonctionCommand
FonctionMot ((S* )) ? N* CompoundCommandRedirection*

FonctionDéfinition
Des noms* ( S* )N* RedirectionCommandComposée*

Commande simple
&(Word / Redirection) (Affectation / Redirection)* (Word / Redirection)*

Affectation
Nom=Mot /

Nom =(N* (Mot N*)* )

Nom
![[:digit:]] [[:alnum:] _]+

NomPortable
![0-9] [0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]+

Word
(WordElement / !SpecialChar .)+ S*

Élément Mot
\ . / ' (!' .) * ' / "Élément de devis* " / Paramètre / Arithmétique / CommandSubstitution

Élément de citation
\ ([$`"\] / NL) / Paramètre / Arithmétique / CommandSubstitution /

![`"\].

Paramètre
$ [@*# ?-$ ! [:chiffre:]] / $NomPortable / $ParamètreCorps

ParamètreCorps
{ParamètreNuméro ? (ParameterName / ParameterBody / Parameter) ParameterIndex ?
ParamètreMatch ? }

NuméroParamètre
# ![+=:/%] !([-?#] })

Le nom du paramètre
[@*# ?-$ !] /

[[:numéro:] _]+

Index des paramètres
[ParamètreIndexMot (, ParameterIndexWord) ? ]

ParamètreIndexMot
(ÉlémentMot / !["'],] .)+

ParamètreMatch
:?[-+= ?] ParamètreMatchWord /

(# / ## / % / %%) ParamètreMatchWord /

(:/ / / [#%/]?) ParamètreMatchWordNoSlash (/ ParameterMatchWord) ?

ParamètreMatchWord
(ÉlémentMot / !["'}] .)*

ParamètreMatchWordNoSlash
(ÉlémentMot / !["'/}] .)*

Arithmétique
$((ArithmétiqueCorps* ))

ArithmétiqueCorps
\ . / Paramètre / Arithmétique / CommandSubstitution / ( ArithmétiqueCorps ) /

![`()].

Substitution de commandes
$(Séquence) / `Corps de substitution de commande* `

CommandSubstitutionBody
\ [$`\] /

!` .

Redirection
RedirectionFDRedirectionOperatorS* Mot /

RedirectionFD <(Séquence) /

RedirectionFD >( Séquence )

RedirectionFD
[[:chiffre:]]*

Opérateur de redirection
< / <> / > / >| / >> / >>| / <& / >& / << / << - / <<

Séparateur de liste
Séparateur / &N* /

&) /

&;;

Séparateur
;N* / N+ / EOF

N
S* NL

S
[[:blank:]] / Commentaire

Commentaires
# (!NL .)*

R
Bang / LeftBrace / RightBrace / Case / Do / Done / Elif / Else / Esac / Fi / Pour / Si
/ Dans / Alors / Jusqu'à / Tant que

Coup
!D

Accolade gauche
{D

Accolade droite
}D

Témoignage client
maisonsD

Do
doD

OK
faitD

Elif
ElifD

autre
d'autreD

Esac
EsacD

Fi
fiD

Pour
pourD

Fonction
fonctionD

If
ifD

In
inD

Ensuite
puisD

Jusqu'à ce que
jusqu'auD

Si
tout enD

D
!Mots*

Caractère spécial
[|&;<>()`\"' [:blank:]] / NL

NL


EOF
!.

ALIAS SLIP INTÉGRÉ


Le manuel de formation alias intégré définit et/ou imprime des alias.

Syntaxe
· alias [-gp] [prénom[=Plus-value(...)...]

Description
La fonction intégrée alias définit et/ou imprime les alias comme spécifié par les opérandes. L'imprimé
les alias peuvent être utilisés comme (partie de) commandes shell. Les impressions intégrées sont toutes actuellement définies
alias lorsqu'il n'y a pas d'opérandes.

Options
-g, --mondial
Avec cette option, les alias sont définis comme des alias globaux ; sans cette option, comme
pseudonymes normaux.

-p, --préfixe
Avec cette option, les alias sont imprimés sous une forme de commande complète comme alias -g foo='bar'.
Sans cette option, seuls les opérandes de commande sont imprimés comme foo='bar'.

Opérandes
prénom
Le nom d'un alias qui doit être imprimé.

prénom=Plus-value
Nom et valeur d'un alias en cours de définition.

Sortie statuts
L'état de sortie de l'alias intégré est zéro sauf en cas d'erreur.

Remarques
Les caractères qui ne peuvent pas être utilisés dans un nom d'alias sont l'espace, la tabulation, la nouvelle ligne et tout autre
of =$<>\'"`;&|()#. Vous pouvez utiliser n'importe quel caractère dans une valeur d'alias.

L'alias intégré est un intégré semi-spécial.

La norme POSIX ne définit aucune option pour l'alias intégré, donc aucune option n'est
disponible en mode POSIXly correct.

TABLEAU SLIP INTÉGRÉ


Le manuel de formation tableau intégré imprime ou modifie des tableaux.

Syntaxe
· tableau

· tableau prénom [Plus-value...]

· tableau -d prénom [indice...]

· tableau -i prénom indice [Plus-value...]

· tableau -s prénom indice Plus-value

Description
Lorsqu'elle est exécutée sans aucune option ou opérande, la fonction intégrée imprime toutes les définitions de tableau sur
la sortie standard sous une forme qui peut être analysée comme des commandes.

Lorsqu'il est exécuté avec prénom et Plus-values (mais sans option), la fonction intégrée définit le Plus-values
comme les valeurs du tableau nommé prénom.

Avec la collection -d (--effacer), l'option intégrée supprime l'option indiceièmes valeurs du tableau nommé
prénom. Le nombre de valeurs dans le tableau sera diminué du nombre de indicees
spécifié. Si la indiceième valeur n'existe pas, elle est silencieusement ignorée.

Avec la collection -i (--insérer) option, les inserts intégrés Plus-values dans le tableau nommé prénomL’
nombre de valeurs dans le tableau sera augmenté du nombre de Plus-valueest spécifié. La
les valeurs sont insérées entre les indiceème et valeurs suivantes. Si indice est nul, les valeurs sont
inséré avant la première valeur. Si indice est supérieur au nombre de valeurs dans
array, les valeurs sont ajoutées après le dernier élément.

Avec la collection -s (--ensemble), les ensembles intégrés Plus-value car indiceième valeur du tableau
nommé prénom. Le tableau doit avoir au moins indice valeurs.

Options
-d, --effacer
Supprimer les valeurs du tableau.

-i, --insérer
Insérer des valeurs de tableau.

-s, --ensemble
Définissez une valeur de tableau.

Opérandes
prénom
Le nom d'un tableau sur lequel opérer.

indice
Index d'un élément de tableau. Le premier élément a pour indice 1.

Plus-value
Une chaîne à laquelle l'élément de tableau est défini.

Sortie statuts
L'état de sortie du tableau intégré est zéro à moins qu'il n'y ait une erreur.

Remarques
Le tableau intégré n'est pas défini dans la norme POSIX.

La commande tableau prénom Plus-value... équivaut à l'affectation prénom=(Plus-value...).

BG SLIP INTÉGRÉ


Le manuel de formation bg intégré reprend un travail en arrière-plan.

Syntaxe
· bg [JOB...]

Description
La fonction intégrée bg envoie le signal SIGCONT au travail spécifié. En conséquence, le travail est
repris en arrière-plan (s'il a été suspendu).

Le nom du travail est imprimé lors de la reprise du travail.

La fonction intégrée ne peut être utilisée que lorsque le contrôle des tâches est activé.

Opérandes
JOB
ID de travail du travail à reprendre.

Plusieurs tâches peuvent être spécifiées à la fois. La tâche en cours est reprise si aucune n'est
spécifié.

Le signe pourcentage (%) au début d'un ID de travail peut être omis si le shell n'est pas
en mode POSIXly-correct.

Sortie statuts
L'état de sortie de la fonction intégrée bg est zéro sauf s'il y a une erreur.

Remarques
Le bg intégré est un intégré semi-spécial.

La norme POSIX prévoit que la fonction intégrée n'aura aucun effet lorsque le travail est déjà
fonctionnement. Le bg intégré de yash, cependant, envoie toujours le signal SIGCONT au travail.

CLÉ DE LIAISON SLIP INTÉGRÉ


Le manuel de formation clé de liaison intégré imprime ou modifie les raccourcis clavier utilisés dans l'édition de ligne.

Syntaxe
· clé de liaison -aev [clé [commander]]

· clé de liaison -l

Description
Lorsqu'il est exécuté avec le -l (--liste), l'option intégrée répertorie toutes les modifications de ligne disponibles
commandes à la sortie standard.

Lorsqu'il est exécuté avec l'une des autres options, le module intégré imprime ou modifie les raccourcis clavier
pour le mode d'édition spécifié par l'option :

· Sans clé or commander, toutes les liaisons actuellement définies sont imprimées selon la norme
sortie sous une forme qui peut être analysée comme des commandes qui restaurent les liaisons actuelles lorsque
réalisé.

· Avec clé mais sans commander, seule la liaison pour le donné clé est imprimé.

· Avec clé et commander, clé est lié à commander.

Options
-a, --vi-commande
Imprimer ou modifier les liaisons pour le mode de commande vi.

-e, --emacs
Imprimer ou modifier les liaisons pour le mode emacs.

-v, --vi-insérer
Imprimez ou modifiez les liaisons pour le mode d'insertion vi.

Opérandes
clé
Une séquence de caractères d'une ou plusieurs touches qui est liée à une commande d'édition. La
La séquence peut inclure des séquences d'échappement.

commander
Une commande d'édition de ligne à laquelle clé est attaché. Si commander est un simple trait d'union (-), clé
est non lié.

Sortie statuts
L'état de sortie de l'intégrée bindkey est zéro sauf s'il y a une erreur.

Remarques
L'intégré bindkey n'est pas défini dans la norme POSIX.

BREAK SLIP INTÉGRÉ


Le manuel de formation pause intégré interrompt une boucle en cours d'exécution.

Syntaxe
· pause [nid]

· pause -i

Description
Lorsqu'il est exécuté sans le -i (--itération), l'option intégrée abandonne une
exécuté pendant, pendant ou jusqu'à la boucle. Lorsqu'il est exécuté dans des boucles imbriquées, il abandonne le nidth
boucle la plus intérieure. Le défaut nid est une. Si le nombre de boucles imbriquées actuellement exécutées
est inférieur à nid, la fonction intégrée abandonne la boucle la plus à l'extérieur.

Lorsqu'il est exécuté avec le -i (--itération), l'option intégrée abandonne l'exécution en cours
exécution itérative (la plus profonde).

Options
-i, --itération
Abandonner une exécution itérative au lieu d'une boucle.

Opérandes
nid
Le nombre de boucles à abandonner, qui doit être un entier positif.

Sortie statuts
L'état de sortie de l'intégrée break est :

· zéro si une boucle a été interrompue avec succès.

· celui de la commande qui a été exécutée juste avant le break intégré si une itérative
l'exécution a été interrompue avec succès.

Remarques
Le break intégré est un intégré spécial.

Le standard POSIX ne définit aucune option pour le break intégré ; l'intégré n'accepte pas
options en mode POSIXly-correct.

CD SLIP INTÉGRÉ


Le manuel de formation cd intégré change le répertoire de travail.

Syntaxe
· cd [-L|-P] [annuaire]

Description
La fonction intégrée cd remplace le répertoire de travail par le répertoire spécifié par l'opérande.
Le chemin du nouveau répertoire de travail est attribué au PWD variable, dont le précédent
valeur est à nouveau attribuée au ANCIENWD variable.

If annuaire est un chemin relatif qui ne commence pas par '.' ou '..', chemins dans le CDPATH
variable sont recherchées pour trouver un nouveau répertoire de travail. La recherche se fait de manière
similaire à la dernière étape de la recherche de commande, mais un répertoire est recherché au lieu d'un
fichier régulier exécutable. Si un nouveau répertoire de travail a été trouvé à partir de CDPATH, son nom de chemin est
imprimé sur la sortie standard. Si aucun répertoire applicable n'a été trouvé dans la recherche,
annuaire est simplement traité comme un chemin d'accès relatif au répertoire de travail courant.

Si le répertoire de travail a été modifié avec succès, la valeur du YASH_AFTER_CD variable
est exécuté comme une commande à moins que le shell soit en mode POSIXly-correct. Si la variable
est un tableau, ses valeurs sont exécutées de manière itérative (cf. intégré eval).

Options
-L, --logique
Les liens symboliques dans le chemin du nouveau répertoire de travail ne sont pas résolus. Le nouveau
valeur de la PWD peut inclure des composants de nom de chemin qui sont des liens symboliques.

-P, --physique
Les liens symboliques dans le chemin du nouveau répertoire de travail sont résolus. Le nouveau
valeur de la PWD La variable n'inclut jamais de composants de nom de chemin qui sont des liens symboliques.

--répertoire-par défaut=annuaire
Si cette option est spécifiée et que le annuaire opérande est omis, l'argument de celui-ci
l'option est utilisée pour le annuaire opérande. Si la annuaire l'opérande est spécifié, cela
l'option est ignorée.

Le manuel de formation -L (--logique) et -P (--physique) les options s'excluent mutuellement : seule la dernière
celui spécifié est efficace. Si ni l'un ni l'autre n'est spécifié, -L est assumé.

Opérandes
annuaire
Le chemin du nouveau répertoire de travail.

If annuaire est un simple trait d'union ('-'), la valeur du ANCIENWD la variable est supposée pour
le nouveau chemin d'accès au répertoire, qui est affiché sur la sortie standard.

If annuaire est omis, le répertoire de travail est remplacé par le répertoire spécifié
par le --répertoire-par défaut=... option. Si cette option n'est pas spécifiée non plus, le
par défaut est le répertoire personnel.

Sortie statuts
L'état de sortie du cd intégré est zéro si le répertoire de travail a été correctement
modifié et différent de zéro en cas d'erreur.

Remarques
Le cd intégré est un intégré semi-spécial.

La norme POSIX ne définit pas l'utilisation des YASH_AFTER_CD variable ou le
--répertoire-par défaut=... option. La norme ne permet pas d'utiliser une option avec un seul
opérande trait d'union.

L'état de sortie des commandes dans le YASH_AFTER_CD la variable n'affecte pas celle de la
CD intégré.

COLON SLIP INTÉGRÉ


Le manuel de formation côlon intégré ne fait rien.

Syntaxe
· : [argument...]

Description
Le côlon intégré ne fait rien. Tous les arguments de ligne de commande sont ignorés.

Sortie statuts
L'état de sortie de la fonction intégrée deux-points est zéro.

Remarques
Le côlon intégré est un intégré spécial.

Les arguments sont développés et les redirections sont effectuées comme d'habitude. Le côlon et vrai
les éléments intégrés ont le même effet, mais deux-points est un élément intégré spécial tandis que true est un
semi-spécial.

COMMAND SLIP INTÉGRÉ


Le manuel de formation commander intégré exécute ou identifie une commande.

Syntaxe
· commander [-befp] commander [argument...]

· commander -v|-V [-abefkp] commander...

Description
Sans le -v (--identifier) ou -V (--verbose-identifier), l'option intégrée exécute
commander avec arguments de la même manière que la dernière étape d'exécution de simples
commandes. La commande est traitée comme une commande intégrée ou externe ou comme une fonction selon
aux options spécifiées à la commande intégrée. Le shell ne se ferme pas en argument
erreur de syntaxe, etc. même si la commande est une commande intégrée spéciale

Avec la collection -v (--identifier), commander est identifié. Si la commande se trouve dans $ CHEMIN,
son chemin d'accès complet est imprimé. S'il s'agit d'un mot-clé, d'une fonction ou d'un élément intégré introuvable
in $ CHEMIN, le nom de la commande est simplement imprimé. S'il s'agit d'un alias, il est imprimé sous la forme
comme alias ll='ls -l'. Si la commande n'est pas trouvée, rien n'est imprimé et l'état de sortie
est non nul.

Le manuel de formation -V (--verbose-identifier) est similaire à l'option -v (--identifier) option, mais le
le format de sortie est plus convivial.

Options
-a, --alias
Recherchez la commande en tant qu'alias. Doit être utilisé avec le -v (--identifier) ou -V
(--verbose-identifier) option.

-b, --commande-intégrée
Recherchez la commande en tant que fichier intégré.

-e, --commande-externe
Recherchez la commande en tant que commande externe.

-f, --fonction
Recherchez la commande en tant que fonction.

-k, --mot-clé
Recherchez la commande en tant que mot-clé. Doit être utilisé avec le -v (--identifier) ou -V
(--verbose-identifier) option.

-p, --chemin-standard
Rechercher la valeur par défaut du système PATH au lieu du courant $ CHEMIN.

-v, --identifier
Identifier commanders et imprimer dans le format défini dans la norme POSIX.

-V, --verbose-identifier
Identifier commanders et imprimer dans un format convivial.

Si aucun des -a (--alias), -b (--commande-intégrée), -e (--commande-externe), -f
(--fonction), Et -k (--mot-clé) est spécifié, les valeurs par défaut suivantes sont supposées :

Sans le -v (--identifier) ou -V (--verbose-identifier) options
-b -e

Avec la collection -v (--identifier) ou -V (--verbose-identifier) options
-a -b -e -f -k

Opérandes
commander
Commande à exécuter ou à identifier.

argument...
Arguments passés à la commande exécutée.

Sortie statuts
L'état de sortie de la commande intégrée est :

Sans le -v (--identifier) ou -V (--verbose-identifier) options
l'état de sortie de la commande exécutée.

Avec la collection -v (--identifier) ou -V (--verbose-identifier) options
zéro sauf s'il y a une erreur.

Remarques
La commande prédéfinie est une prédéfinie semi-spéciale.

En mode POSIXly-correct, les options autres que -p, -vet -V ne peut pas être utilisé et au plus
UN commander peut être spécifié. La norme POSIX ne permet pas de spécifier à la fois -v et -V
ensemble, mais yash le fait (seul le dernier spécifié est effectif).

COMPLET SLIP INTÉGRÉ


Le manuel de formation complet intégré génère des candidats à l'achèvement. Cette fonction intégrée ne peut être exécutée que
à partir des fonctions de complétion lors de la complétion de la ligne de commande.

Syntaxe
· complet [-UNE modèle] [-R modèle] [-T] [-P préfixe] [-S suffixe] [-abcdfghjkuv] [[-O]
[-RÉ la description] mot...]

Description
La fonction intégrée génère des candidats à l'achèvement en fonction des arguments spécifiés. Non
quelle que soit la manière dont les candidats sont générés, seuls les candidats correspondant au mot à compléter
Sont générés.

Options
-A modèle, --accepter=modèle
N'acceptez que les candidats qui correspondent au modèle spécifié par cette option. Quand plus de
l'une de ces options est spécifiée, seuls les candidats qui correspondent à tous les modèles sont
généré.

-D la description, --description=la description
Donnez une description de la mot candidats. La description est affichée à côté du
candidats dans la liste des candidats.

-O, --option
Les candidats sont traités comme des options de ligne de commande. Un trait d'union est ajouté à chaque
candidat traité comme une option.

-P préfixe, --préfixe=préfixe
ignorer préfixe du mot à compléter lors de la génération des candidats. Le spécifié
préfixe doit être la partie initiale du mot.

Si le mot à compléter est fichier:///home/user/docume par exemple, la ligne de commande
complet -P fichier: // -f générera des noms de chemin candidats qui complètent
/home/utilisateur/document.

-R modèle, --rejeter=modèle
Rejeter les candidats qui correspondent au modèle spécifié par cette option. Lorsque plus d'un
de cette option est spécifié, seuls les candidats qui ne correspondent à aucun des modèles sont
généré.

-S suffixe, --suffixe=suffixe
Ajouter suffixe à chaque candidat généré.

-T, --pas de résiliation
N'ajoutez pas d'espace après la fin du mot. Sans cette option, un espace est
ajouté au mot complété afin que vous n'ayez pas à saisir d'espace avant le
mot suivant.

Options qui Sélectionner candidat types
-a, --alias
Alias. (pareil que --alias-normal --alias-global)

--variable-tableau
Tableaux.

--clé de liaison
L'édition de ligne commande le clé de liaison intégré accepte.

-b, --commande-intégrée
Commandes intégrées. (pareil que --spécial-intégré --semi-spécial-intégré
--regular-builtin)

-c, --commander
Commandes. (pareil que --commande-intégrée --commande-externe --fonction)

-d, --annuaire
Répertoires.

--dirstack-index
Index valides de la pile de répertoires.

--fichier exécutable
Fichiers réguliers exécutables.

--commande-externe
Commandes externes.

-f, --déposer
Fichiers (y compris les répertoires).

--travail-fini
ID de travail des travaux terminés.

--fonction
Les fonctions.

--alias-global
Alias ​​globaux.

-g, --grouper
Groupes d'utilisateurs.

-h, --nom d'hôte
Noms d'hôte.

-j, --travail
ID de travail.

-k, --mot-clé
Mots clés.

--alias-normal
Alias ​​normaux.

--regular-builtin
Commandes intégrées régulières.

--travail-en cours
ID de tâche des tâches en cours d'exécution.

--variable-scalaire
Variables qui ne sont pas des tableaux.

--semi-spécial-intégré
Commandes intégrées semi-spéciales.

--signal
Signaux.

--spécial-intégré
Commandes intégrées spéciales.

--travail arrêté
ID de travail des travaux suspendus.

-u, --Nom d'utilisateur
Noms de connexion des utilisateurs.

-v, --variable
Variables

Si la -d (--annuaire) est spécifiée sans l'option -f (--déposer) option, le -S /
-T les options sont supposées.

Les candidats générés pour les ID d'emploi n'ont pas de signe de pourcentage (%). Si le mot
en cours commence par un signe de pourcentage, le -P % option doit être spécifiée.

Opérandes
Les opérandes sont traités comme des candidats à l'achèvement.

Sortie statuts
L'état de sortie de l'intégré est zéro si un ou plusieurs candidats ont été générés, un si
aucun candidat n'a été généré, ou supérieur à un si une erreur s'est produite.

Remarques
L'intégré complet n'est pas défini dans la norme POSIX.

VOIR PLUS SLIP INTÉGRÉ


Le manuel de formation continuer intégré saute une itération d'une boucle en cours d'exécution.

Syntaxe
· continuer [nid]

· continuer -i

Description
Lorsqu'il est exécuté sans le -i (--itération), l'option intégrée interrompt le courant
itération de la boucle for, while ou until et démarre la prochaine itération de la boucle. Lorsque
exécuté dans des boucles imbriquées, il affecte la nidème boucle la plus interne. Le défaut nid est une.
Si le nombre de boucles imbriquées actuellement exécutées est inférieur à nid, les effets intégrés
la boucle la plus externe.

Lorsqu'il est exécuté avec le -i (--itération), l'option intégrée abandonne l'itération en cours
de l'exécution itérative (la plus interne).

Options
-i, --itération
Ignorer une exécution itérative au lieu d'une boucle.

Opérandes
nid
Le manuel de formation nidème boucle la plus interne est affectée. nid doit être un entier positif.

Sortie statuts
L'état de sortie de la fonction intégrée continue est :

· zéro si l'itération de boucle a été sautée avec succès.

· celle de la commande qui a été exécutée juste avant l'intégrée continue si itérative
l'exécution a été ignorée avec succès.

Remarques
La fonction intégrée continue est une fonction intégrée spéciale.

Le standard POSIX ne définit aucune option pour l'intégré continue ; l'intégré n'accepte pas
options en mode POSIXly-correct.

DIR SLIP INTÉGRÉ


Le manuel de formation dirs intégré imprime le contenu de la pile de répertoires.

Syntaxe
· dirs [-CV] [indice..]

Description
Le manuel de formation annuaire empiler est une fonctionnalité qui enregistre l'historique des répertoires de travail. Vous pouvez utiliser
la fonction intégrée pushd pour enregistrer un répertoire de travail dans la pile de répertoires, la fonction intégrée popd
pour rappeler le répertoire de travail enregistré et les répertoires intégrés pour voir le contenu de la pile.
Ces intégrés utilisent le CHEMINÉE tableau et le PWD variable pour enregistrer le contenu de la pile.
Modifier le tableau revient à modifier le contenu de la pile.

Les entrées de la pile de répertoires sont indexées par des entiers signés. L'entrée d'indice +0 est la
répertoire de travail actuel, +1 est le dernier répertoire enregistré, +2 est l'avant-dernier, et ainsi de suite
sur. Les indices négatifs sont dans l'ordre inverse : l'entrée d'indice -0 est la première enregistrée
répertoire, -1 est le deuxième, et -n est le répertoire de travail actuel si la pile a n
entrées,

Lorsqu'il est exécuté sans le -c (--dégager), l'option intégrée dirs imprime le courant
contenu de la pile de répertoires sur la sortie standard. Avec le -c (--dégager) option, le
built-in efface la pile de répertoires.

Options
-c, --dégager
Effacez le contenu de la pile de répertoires à l'exception du répertoire de travail actuel, qui a
indice +0.

-v, --verbeux
Imprimer les indices lors de l'impression du contenu de la pile.

Opérandes
indice
L'index d'une entrée de pile à imprimer.

Vous pouvez spécifier plusieurs index. Si vous ne spécifiez aucun index, toutes les entrées
sont imprimés.

Sortie statuts
L'état de sortie de la fonction intégrée dirs est zéro sauf s'il y a une erreur.

Remarques
L'intégré dirs n'est pas défini dans la norme POSIX.

RENIER SLIP INTÉGRÉ


Le manuel de formation renier intégré supprime des travaux.

Syntaxe
· renier [-une] [JOB...}

Description
La fonction intégrée disown supprime les travaux spécifiés de la liste des travaux. Les travaux supprimés ne seront pas
n'est plus contrôlé par les travaux, mais les processus de travail continuent à s'exécuter (sauf s'ils ont été
suspendu).

Options
-a, --tout
Supprime toutes les tâches.

Opérandes
JOB
ID de travail du travail à supprimer.

Vous pouvez spécifier plusieurs ID de travail. Si vous ne spécifiez aucun ID de travail, le
le travail est supprimé. Si le shell n'est pas en mode POSIX-correct, le préfixe % du
l'ID de travail peut être omis.

Sortie statuts
L'état de sortie de la fonction intégrée disown est zéro sauf en cas d'erreur.

Remarques
L'intégré disown n'est pas défini dans la norme POSIX.

DOT SLIP INTÉGRÉ


Le manuel de formation point intégré lit un fichier et y exécute des commandes.

Syntaxe
· . [-AL] filet [argument...]

Description
La fonction intégrée dot lit le spécifié filet, analyse son contenu en tant que commandes et exécute
dans l'environnement d'exécution de commandes actuel.

If arguments sont spécifiés, des paramètres de position leur sont temporairement définis. La
les paramètres de position seront restaurés lorsque le point intégré se terminera. Sinon arguments sont
spécifié, les paramètres de position ne sont pas modifiés.

If filet ne contient pas de slash, le shell recherche $ CHEMIN pour un lisible (mais pas
nécessairement exécutable) fichier de script shell dont le nom est filet de la même manière que la commande
chercher. Si aucun fichier de ce type n'a été trouvé, le shell recherche dans le répertoire de travail courant un
fichier sauf en mode POSIXly-correct. Pour s'assurer que le fichier en cours de travail
répertoire est utilisé, démarrez filet avec './'.

Options
-A, --pas d'alias
Désactiver la substitution d'alias lors de l'analyse.

-L, --chargement automatique
Rechercher $YASH_LOADPATH au lieu de $ CHEMIN, indépendamment du fait que filet contient des barres obliques.
Le manuel de formation filet la valeur n'est pas considérée comme relative au répertoire de travail actuel.

La fonction intégrée point traite comme des opérandes tous les arguments de ligne de commande après le premier opérande.

Opérandes
filet
Le chemin d'accès d'un fichier à lire.

arguments...
Chaînes auxquelles les paramètres positionnels sont définis lors de l'exécution.

Sortie statuts
L'état de sortie de la fonction intégrée point est celui de la dernière commande exécutée. Le statut de sortie
vaut zéro si le fichier ne contient aucune commande à exécuter et non nul si un fichier n'a pas été trouvé
ou n'a pas pu être ouvert.

Remarques
La fonction intégrée dot est une fonction intégrée spéciale.

Un shell non interactif se termine immédiatement avec un état de sortie différent de zéro si le point intégré
ne parvient pas à trouver ou à ouvrir un fichier à exécuter.

Le standard POSIX ne définit aucune option pour le point intégré ; l'intégré n'accepte pas
options en mode POSIXly-correct.

La norme POSIX ne définit pas la arguments... opérandes. C'est une erreur de préciser
le arguments... opérandes en mode POSIXly-correct.

ECHO SLIP INTÉGRÉ


Le manuel de formation echo intégré affiche ses arguments.

Syntaxe
· echo [un magnifique...]

La fonction intégrée traite tous les arguments de la ligne de commande comme des opérandes, à l'exception des options
décrit ci-dessous. Tout mot qui ne peut pas être analysé comme une option acceptable est traité comme un
opérande. Les options doivent précéder tous les opérandes. Les erreurs de syntaxe ne se produisent jamais dans l'écho
intégré.

Description
L'écho intégré imprime l'opérande un magnifiques suivi d'une nouvelle ligne vers la sortie standard.
Le manuel de formation un magnifiques sont chacun séparés par un espace.

Échapper séquences
Le manuel de formation ÉCHO_STYLE variable et le -e option active les séquences d'échappement qui sont remplacées
avec les caractères correspondants :

\a
Caractère cloche (code ASCII : 7)

\b
Retour arrière (code ASCII : 8)

\c
Rien. Après cette séquence d'échappement, aucun caractère n'est imprimé.

\e
Caractère d'échappement (code ASCII : 27)

\f
Caractère de saut de page (code ASCII : 12)

\n
Caractère de saut de ligne (code ASCII : 10)

\r
Caractère de retour chariot (code ASCII : 13)

\t
Caractère de tabulation horizontale (code ASCII : 9)

\v
Caractère de tabulation verticale (code ASCII : 11)

\\
Barre oblique inverse

\0xxx
Caractère dont le code est xxx, Où xxx est un nombre octal d'au plus trois chiffres.

Lorsque les séquences d'échappement ne sont pas activées, elles sont simplement imprimées intactes.

ÉCHO_STYLE variable
Le manuel de formation ÉCHO_STYLE la variable définit quelles options sont acceptées et si l'évasion
les séquences sont activées par défaut. La valeur de la variable doit être définie sur l'une des
Suivante à la suite:

SYSV, XSI
Aucune option n'est acceptée. Les séquences d'échappement sont toujours activées.

BSD
Le manuel de formation -n l'option est acceptée. Les séquences d'échappement ne sont jamais activées.

GNU
Le manuel de formation -n, -eet -E les options sont acceptées. Les séquences d'échappement ne sont pas activées par
par défaut, mais peut être activé par le -e option.

ZSH
Le manuel de formation -n, -eet -E les options sont acceptées. Les séquences d'échappement sont activées par défaut,
mais peut être désactivé par le -E option.

DASH
Le manuel de formation -n l'option est acceptée. Les séquences d'échappement sont toujours activées.

RAW
Aucune option n'est acceptée. Les séquences d'échappement ne sont jamais activées.

When the ÉCHO_STYLE variable n'est pas définie, sa valeur par défaut est SYSV.

Options
-n
N'imprimez pas de saut de ligne à la fin.

-e
Activez les séquences d'échappement.

-E
Désactiver les séquences d'échappement.

Sortie statuts
L'état de sortie de la fonction intégrée echo est zéro sauf s'il y a une erreur.

Remarques
La norme POSIX ne définit pas la ÉCHO_STYLE variable ni aucune option pour le
intégré. Selon POSIX, le comportement de l'intégré est défini par l'implémentation lorsque
le premier argument est -n ou lorsqu'un argument contient une barre oblique inverse. Pour un maximum
portabilité, la fonction intégrée printf doit être préférée à la fonction intégrée echo.

ÉVALUER SLIP INTÉGRÉ


Le manuel de formation eval intégré évalue les opérandes comme des commandes.

Syntaxe
· eval [-je] [commander...]

La fonction intégrée eval requiert que toutes les options précèdent les opérandes. Tous les arguments de la ligne de commande
après le premier opérande sont tous traités comme des opérandes.

Description
L'eval analyse les opérandes en tant que commandes et les exécute dans l'exécution de la commande en cours
sûr et sécurisé.

Lorsqu'il est exécuté sans le -i (--itération), tous les opérandes sont concaténés dans
une chaîne (avec un espace inséré entre chaque opérande) et analysé/exécuté à la fois.

Avec la collection -i (--itération) l'option intégrée effectue itératif efficace: les opérandes sont
analysés/exécutés un par un. Si la fonction intégrée continue est exécutée avec la -i (--itération)
pendant l'exécution itérative, l'exécution de l'opérande en cours est interrompue et
l'opérande suivant est analysé/exécuté immédiatement. La pause intégrée avec le -i
(--itération) est similaire mais les opérandes restants ne sont pas analysés/exécutés. La
valeur de la ? paramètre spécial est enregistré avant le démarrage de l'exécution itérative. La
la valeur du paramètre est restaurée à celle enregistrée après chaque itération.

Options
-i, --itération
Effectuer une exécution itérative.

Opérandes
commander
Une chaîne qui est analysée et exécutée en tant que commandes.

Sortie statuts
Le statut de sortie est zéro si non commander a été spécifié ou commander ne contenait aucune commande réelle
qui peut être exécuté. Sinon, c'est-à-dire si la fonction intégrée eval a exécuté une ou plusieurs
commandes, l'état de sortie de la fonction intégrée eval est celui de la dernière commande exécutée.

Remarques
La fonction intégrée eval est une fonction intégrée spéciale.

Le standard POSIX ne définit aucune option pour la fonction intégrée eval ; l'intégré n'accepte pas
options en mode POSIXly-correct.

EXEC SLIP INTÉGRÉ


Le manuel de formation exec intégré remplace le processus shell par une autre commande externe.

Syntaxe
· exec [-cf] [-une prénom] [commander [argument...]]

La fonction intégrée exec requiert que toutes les options précèdent les opérandes. Il est important pour que
les options de l'exec intégré ne sont pas confondues avec les options de commander. N'importe quelle ligne de commande
arguments après commander sont traités comme arguments.

Description
Lorsque la fonction intégrée exec est exécutée avec commander, le shell exécute commander avec arguments
de manière similaire à la dernière étape d'exécution d'une commande simple. Les différences sont
qui commander est toujours traité comme une commande externe ignorant toutes les fonctions existantes et
intégrés et que l'appel système exec qui lance la commande externe est appelé dans le
environnement d'exécution de commande actuel au lieu d'un sous-shell, remplaçant le processus shell
avec le nouveau processus de commande.

Si le shell est en mode POSIXly-correct ou non interactif, échec d'exécution de
commander provoque la fermeture immédiate du shell.

Si un shell interactif qui n'est pas en mode POSIXly-correct a une tâche arrêtée, le
shell affiche un message d'avertissement et refuse de s'exécuter commander. Une fois le processus shell terminé
remplacé par une commande externe, les informations sur les tâches du shell sont perdues, vous devrez donc
devez reprendre ou tuer les travaux arrêtés en envoyant des signaux à la main. Pour forcer le shell à
exécuter commander quoi qu'il en soit, indiquez le -f (--Obliger) option.

Lorsqu'il est exécuté sans commander, la fonction intégrée ne fait rien. Cependant, comme effet secondaire,
la redirection appliquée aux restes intégrés dans l'environnement d'exécution de commande actuel
même après l'intégration terminée.

Options
-a prénom, --comme=prénom
Passé prénom, Au lieu d' commander, à la commande externe comme nom.

-c, --dégager
Transmettez à la commande externe uniquement les variables affectées dans la commande simple dans
laquelle la fonction intégrée est en cours d'exécution. Les autres variables d'environnement ne sont pas transmises à
la commande.

-f, --Obliger
Supprime les avertissements qui empêcheraient l'exécution de la commande.

Opérandes
commander
Une commande externe à exécuter.

argument...
Arguments à passer à la commande.

Sortie statuts
Si le processus shell a été remplacé avec succès par la commande externe, il n'y a pas de sortie
statut puisque le processus shell n'existe plus.

Le statut de sortie est :

· 127 si la commande n'a pas été trouvée,

· 126 si la commande a été trouvée mais n'a pas pu être exécutée, et

· zéro si non commander a été précisé.

Remarques
La fonction intégrée exec est une fonction intégrée spéciale.

Le standard POSIX ne définit aucune option pour l'exec intégré ; l'intégré n'accepte pas
options en mode POSIXly-correct.

EXIT SLIP INTÉGRÉ


Le manuel de formation sortie intégré provoque la fermeture du processus shell.

Syntaxe
· sortie [-F] [état_sortie]

Description
La sortie intégrée provoque la sortie du processus shell (ou sous-shell) en cours.

Si un shell interactif a une tâche arrêtée, le shell imprime un message d'avertissement et refuse
pour quitter. Pour forcer le shell à quitter malgré tout, spécifiez le -f (--Obliger) option ou exécuter
intégré deux fois de suite.

Si une interruption EXIT a été définie, le shell exécute l'interruption avant de quitter.

Options
-f, --Obliger
Supprime les avertissements qui empêcheraient le shell de se fermer.

Opérandes
état_sortie
Un entier non négatif qui sera le statut de sortie du shell sortant.

Si cet opérande est omis, l'état de sortie du shell sera celui du dernier
commande exécutée avant la commande intégrée exit (mais, si la commande intégrée est exécutée pendant un
trap, l'état de sortie sera celui de la dernière commande avant l'entrée du trap).

If état_sortie est de 256 ou plus, le statut de sortie réel sera le reste de
état_sortie divisé par 256.

Sortie statuts
Étant donné que la fonction intégrée provoque la fermeture du shell, il n'y a pas d'état de sortie de la fonction intégrée.

Exceptionnellement, si le shell a refusé de quitter, l'état de sortie de la fonction intégrée est
non nul.

Remarques
La sortie intégrée est une fonction intégrée spéciale.

Le standard POSIX ne définit aucune option pour l'exit intégré ; l'intégré n'accepte pas
options en mode POSIXly-correct.

La norme POSIX prévoit que le état_sortie l'opérande doit être compris entre 0 et 255
(compris). Yash accepte les entiers supérieurs à 255 comme extension.

Si la fonction intégrée est exécutée pendant une interruption EXIT, le shell se contente de quitter sans exécuter
encore le piège. Si état_sortie n'a pas été spécifié, le statut de sortie du shell est ce que le
l'état de sortie serait si l'interruption n'avait pas été définie. Voir aussi Terminaison du shell.

EXPORTATION SLIP INTÉGRÉ


Le manuel de formation Exporter intégré marque les variables à exporter vers les processus enfants.

Syntaxe
· Exporter [-prX] [prénom[=Plus-value(...)...]

Description
L'export intégré est équivalent à l'intégré composer avec la propriété -gx option.

Remarques
L'export intégré est un intégré spécial.

La norme POSIX définit la -p option uniquement ; d'autres options ne peuvent pas être utilisées dans le
Mode POSIX-correct. Le POSIX ne permet pas d'utiliser l'option avec des opérandes.

FAUX SLIP INTÉGRÉ


Le manuel de formation non intégré ne fait rien sans succès.

Syntaxe
· non

Description
Le faux intégré ne fait rien. Tous les arguments de ligne de commande sont ignorés.

Sortie statuts
L'état de sortie de la valeur intégrée false est différent de zéro.

Remarques
Le faux intégré est un intégré semi-spécial.

FC SLIP INTÉGRÉ


Le manuel de formation fc intégré ré-exécute ou imprime les commandes à partir de l'historique des commandes.

Syntaxe
· fc [-qr] [-e éditeur] [Commencer [fin]]

· fc -s[q] [et les sites anciens=nouvelle] [Commencer]

· fc -l[nrv] [Commencer [fin]]

Description
Lorsqu'il est exécuté sans le -l (--liste), la fonction intégrée exécute les commandes dans le
plage d'historique des commandes spécifiée par les opérandes. Si la -s (--silencieux) n'est pas
spécifié, le shell invoque un éditeur qui vous permet d'éditer les commandes avant qu'elles ne soient
sont exécutés. Les commandes sont exécutées lorsque vous quittez l'éditeur. Si la -s (--silencieux)
option est spécifiée, les commandes sont immédiatement exécutées. Dans les deux cas, l'exécution
les commandes sont imprimées sur la sortie standard et ajoutées à l'historique.

Lorsqu'il est exécuté avec le -l (--liste), l'option intégrée imprime les commandes dans la commande
plage d'historique spécifiée par les opérandes. Par défaut, les commandes sont imprimées avec leur
numéros d'entrée de l'historique, mais le format de sortie peut être modifié à l'aide des -n (--pas de chiffres)) et
-v (--verbeux).

Options
-e éditeur, --éditeur=éditeur
Spécifiez un éditeur utilisé pour modifier les commandes.

Si cette option n'est pas spécifiée, la valeur de FCEDIT variable est utilisée. Si la
la variable n'est pas définie non plus, vi est utilisé.

-l, --liste
Imprimer les entrées de l'historique des commandes.

-n, --pas de chiffres
N'imprimez pas les numéros d'entrée lors de l'impression des entrées de l'historique.

-q, --silencieux
N'imprimez pas les commandes avant de les exécuter.

-r, --sens inverse
Inversez l'ordre des entrées de commande dans la plage.

-s, --silencieux
Exécutez des commandes sans les modifier.

-v, --verbeux
Imprimer le temps d'exécution avant chaque entrée d'historique lors de l'impression.

Opérandes
Commencer et fin
Le manuel de formation Commencer et fin les opérandes spécifient une plage d'entrées d'historique de commandes qui sont
exécuté ou imprimé. Si l'un des opérandes est un entier, il est traité comme un historique
Numéro d'entrée. Un entier négatif signifie que nème entrée la plus récente où n est le
valeur absolue de l'entier. Si l'un des opérandes n'est pas un entier, il est traité
dans le cadre d'une chaîne de commande : l'entrée la plus récente qui commence par la chaîne est
sélectionné comme début ou fin de plage.

Si la première entrée de la plage spécifiée par Commencer est plus récent que le précédent
entrée de la plage spécifiée par fin, la plage est inversée comme si le -r
(--sens inverse) option a été spécifiée. (Si l'option est déjà spécifiée, elle est
annulé.)

Les valeurs par défaut pour Commencer et fin sont:

┌──────┬─────────┬───────────────┐
avec -lsans -l
├──────┼─────────┼───────────────┤
Commencer │ -16 │ -1 │
├──────┼─────────┼───────────────┤
fin │ -16 │ identique à Commencer
└──────┴─────────┴───────────────┘

et les sites anciens=nouvelle
Un opérande de ce format remplace une partie de la chaîne de commande. Si la chaîne de commande
contient et les sites anciens, il est remplacé par nouvelle et la nouvelle chaîne est exécutée. Seul le premier
apparition de et les sites anciens est remplacé.

Sortie statuts
Si des commandes ont été exécutées, l'état de sortie de la commande intégrée fc est celui de la dernière commande exécutée.
commande. Sinon, l'état de sortie est zéro sauf en cas d'erreur.

Remarques
Le fc intégré est un intégré semi-spécial.

La norme POSIX ne définit pas la -q (--silencieux) ou -v (--verbeux) options, donc ils
ne peut pas être utilisé en mode POSIXly-correct.

L'historique des commandes ne peut pas être modifié pendant l'édition de ligne.

FG SLIP INTÉGRÉ


Le manuel de formation fg intégré reprend un travail au premier plan.

Syntaxe
· fg [JOB...]

Description
La fonction intégrée fg place le travail spécifié au premier plan et envoie le signal SIGCONT à
le travail. Par conséquent, le travail est repris au premier plan (s'il a été suspendu). La
built-in attend alors la fin de la tâche et en renvoie l'état de sortie.

Le nom du travail est imprimé lors de la reprise du travail.

La fonction intégrée ne peut être utilisée que lorsque le contrôle des tâches est activé.

Opérandes
JOB
ID de travail du travail à reprendre.

Si plusieurs tâches sont spécifiées, elles sont reprises dans l'ordre, une à la fois. La
le travail en cours est repris si aucun n'est spécifié.

Le signe pourcentage (%) au début d'un ID de travail peut être omis si le shell n'est pas
en mode POSIXly-correct.

Sortie statuts
L'état de sortie de la fonction intégrée fg est celui de la (dernière) tâche reprise. Le statut de sortie est
différent de zéro lorsqu'il y avait une erreur.

Remarques
Le fg intégré est un intégré semi-spécial.

Vous ne pouvez pas spécifier plus d'un travail en mode POSIXly-correct.

GETOPTS SLIP INTÉGRÉ


Le manuel de formation getops intégré analyse les options de commande.

Syntaxe
· getops liste d'options variable [argument...]

Description
La fonction intégrée getopts analyse les options à caractère unique qui apparaissent dans arguments. Chaque fois
la fonction intégrée est invoquée, elle analyse une option et attribue le caractère d'option à
variable.

Le manuel de formation liste d'options opérande est une liste de caractères d'option qui doivent être acceptés par le
analyseur. Dans liste d'options, une option qui prend un argument doit être spécifiée comme l'option
caractère suivi de deux-points. Par exemple, si vous voulez que le -a, -b et -c options pour être
analysé et le -b possibilité de prendre un argument, puis liste d'options devrait être abc.

Lorsqu'une option qui prend un argument est analysée, l'argument est assigné à la OPTARG
variable.

Lorsqu'une option qui n'est pas spécifiée dans liste d'options est trouvé ou lorsqu'un argument d'option est
manquant, le résultat dépend du premier caractère de liste d'options:

· Si liste d'options commence par deux-points, le caractère d'option est attribué au OPTARG
variable et variable est défini sur soit ? (quand l'option n'est pas dans liste d'options) ou :
(lorsque l'argument d'option est manquant).

· Autrement, variable est fixé à ?, un OPTARG la variable n'est pas définie et un message d'erreur est
imprimé.

La fonction intégrée analyse une option pour chaque exécution. Pour toutes les options d'un ensemble de commandes
arguments de ligne à analyser, la fonction intégrée doit être exécutée à plusieurs reprises avec le même
arguments. L'intégré utilise le OPTINDRE variable pour retenir laquelle argument devrait être
analysé ensuite. Lorsque la fonction intégrée est invoquée pour la première fois, la valeur de la variable doit être
1, qui est la valeur par défaut. Vous ne devez pas modifier la variable tant que toutes les options n'ont pas été
été analysé, lorsque la fonction intégrée définit la variable sur l'index du premier opérande dans
arguments. (S'il n'y a pas d'opérandes, il sera réglé sur le nombre de arguments plus un.)

Lorsque vous voulez commencer l'analyse d'un nouvel ensemble de arguments, vous devez réinitialiser le OPTINDRE
variable à 1 préalablement.

Opérandes
liste d'options
Une liste d'options qui doivent être acceptées comme options valides dans l'analyse.

variable
Le nom d'une variable à laquelle le résultat doit être affecté.

arguments
Arguments de ligne de commande à analyser.

Quand pas arguments sont donnés, les paramètres positionnels sont analysés.

Sortie statuts
Si une option est trouvée, qu'elle soit spécifiée ou non dans liste d'options, le statut de sortie est
zéro. S'il n'y a plus d'option à analyser, le statut de sortie est différent de zéro.

Exemple
aopt=faux bopt=copt=faux
tandis que getops ab:c opt
do
cas $opt-in
a) aopt=vrai ;;
b) bopt=$OPTARG ;;
c) copt=vrai ;;
\?) renvoie 2 ;;
Esac
fait
si $adopt; puis echo Option -a spécifié ; Fi
si [ -n "$bopt" ]; alors echo Option -b $bopt spécifié ; Fi
si $copt; puis echo Option -c spécifié ; Fi
décalage $((OPTIND - 1))
echo Les opérandes sont : $*

Remarques
In arguments qui sont analysés, les options doivent précéder les opérandes. L'analyse intégrée des extrémités
lorsqu'il rencontre le premier opérande.

L'intégré getopts est un intégré semi-spécial.

La norme POSIX ne spécifie pas ce qui se passera lorsque le OPTINDRE la variable est affectée
une valeur autre que 1.

HASH SLIP INTÉGRÉ


Le manuel de formation hachage intégré se souvient, oublie ou signale les emplacements des commandes.

Syntaxe
· hachage commander...

· hachage -r [commander...]

· hachage [-une]

· hachage -d utilisateur...

· hachage -dr [utilisateur...]

· hachage -d

Description
Lorsqu'il est exécuté avec commanders mais sans options, le module intégré exécute immédiatement la commande
recherche de chemin et caches commanders 'chemins complets.

Lorsqu'il est exécuté avec le -r (--supprimer) option, il supprime les chemins de commanders (ou tous
chemins mis en cache si aucun n'est spécifié) à partir du cache.

Lorsqu'il est exécuté sans options ou commanders, il imprime les chemins actuellement mis en cache vers le
sortie standard.

Avec la collection -d (--annuaire), l'option intégrée fait la même chose pour le répertoire personnel
cache, plutôt que le cache du chemin de commande. Les chemins d'accès au répertoire personnel mis en cache sont utilisés dans le tilde
vous propose d’explorer.

Options
-a, --tout
Imprimer tous les chemins en cache.

Sans cette option, les chemins des éléments intégrés ne sont pas imprimés.

-d, --annuaire
Affecte le cache du répertoire personnel au lieu du cache du chemin de commande.

-r, --supprimer
Supprimer les chemins en cache.

Opérandes
commander
Le nom d'une commande externe (qui ne contient pas de barre oblique).

utilisateur
Un nom d'utilisateur.

Sortie statuts
L'état de sortie de la fonction de hachage intégrée est zéro, sauf en cas d'erreur.

Remarques
Le shell met automatiquement en cache les chemins de commande et de répertoire lors de l'exécution d'une commande ou
effectuer une expansion de tilde, donc normalement il n'est pas nécessaire d'utiliser explicitement cette fonction intégrée
pour mettre en cache les chemins.

Attribuer une valeur au PATH supprime tous les chemins de commande du cache comme si hachage
-r a été exécuté.

La norme POSIX définit la -r option uniquement : les autres options ne peuvent pas être utilisées dans
Mode POSIX-correct.

AIDE SLIP INTÉGRÉ


Le manuel de formation vous aider intégré imprime l'utilisation des éléments intégrés.

Syntaxe
· vous aider [intégré...]

Description
L'aide intégrée imprime une description de intégrés.

L'intégré extrait une partie de la sortie de man Yash et l'imprime sur la sortie standard.
Par conséquent, la page de manuel de yash doit avoir été installée pour que le module intégré fonctionne.
Selon le style de formatage de la commande man, la fonction intégrée peut ne pas fonctionner comme
attendu.

Opérandes
intégrés
Noms des éléments intégrés.

Sortie statuts
L'état de sortie de l'aide intégrée est zéro sauf en cas d'erreur.

Remarques
L'aide intégrée n'est pas définie dans la norme POSIX.

De nombreux intégrés de yash acceptent le --Aidez-moi option qui imprime la même description.

HISTOIRE SLIP INTÉGRÉ


Le manuel de formation Histoire intégré imprime ou modifie l'historique des commandes.

Syntaxe
· Histoire [-cF] [-ré entrée] [-s commander] [-r filet] [-w filet] [compter]

Description
L'historique intégré imprime ou modifie l'historique des commandes.

Lorsqu'il est exécuté avec une option, l'historique des modifications intégré en fonction de l'option. Si plus
plus d'une option est spécifiée, chaque option est traitée dans l'ordre.

Lorsqu'il est exécuté avec le compter l'opérande intégré imprime le plus récent compter Histoire
entrées sur la sortie standard de la même manière que la fonction intégrée fc.

Lorsqu'elle est exécutée sans options ni opérandes, la fonction intégrée imprime tout l'historique.

Options
-c, --dégager
Effacez complètement toutes les entrées de l'historique.

-d entrée, --supprimer=entrée
Supprimer le spécifié entréeL’ entrée doit être spécifié de la même manière que
Commencer et fin opérandes de la fonction intégrée fc.

-F, --flush-fichier
Reconstruisez le fichier d'historique. Cette opération supprime les anciennes données inutilisées du fichier.

-r filet, --lire=filet
Lire les lignes de commande à partir de filet et les ajouter à l'historique. Le contenu du fichier est
traitées comme des lignes de texte simple.

-s commander, --set=commander
Ajoutez des effets de commander comme une nouvelle entrée d'historique après avoir supprimé l'entrée la plus récente.

-w filet, --écrire=filet
Ecrire toute l'histoire à filet. Toutes les données existantes dans le fichier seront perdues. La
le format de sortie est constitué de lignes de texte simple, chacune étant une chaîne de commande.

Opérandes
compter
Le nombre d'entrées à imprimer.

Sortie statuts
L'état de sortie de l'historique intégré est zéro sauf en cas d'erreur.

Remarques
L'historique intégré n'est pas défini dans la norme POSIX.

L'historique des commandes ne peut pas être modifié pendant l'édition de ligne.

OFFRES D'EMPLOIS SLIP INTÉGRÉ


Le manuel de formation emplois intégré signale l'état du travail.

Syntaxe
· emplois [-lnprs] [JOB...]

Description
Les travaux intégrés impriment des informations sur les travaux que le shell contrôle actuellement.

Par défaut, les informations suivantes sont imprimées pour chaque travail, ligne par ligne :

· le numéro de mission,

· les + or - symbole si le travail est le travail actuel ou précédent, respectivement,

· le statut, et

· la chaîne de commande.

Options
-l, --verbeux
Imprimez l'ID de processus, l'état et la chaîne de commande pour chaque processus dans les travaux.

-n, --Nouveau
Imprimer les nouveaux travaux uniquement : travaux dont l'état n'a jamais été signalé depuis l'état
changé.

-p, --pgid-seulement
Imprimer les ID de groupe de processus des travaux uniquement.

-r, --en cours d'exécution uniquement
Imprimez uniquement les travaux en cours.

-s, --arrêté uniquement
Imprimez uniquement les travaux arrêtés.

Opérandes
JOBs
ID de travail des travaux à signaler. Quand non JOB est spécifié, tous les travaux sous le
le contrôle du shell sont signalés.

Sortie statuts
L'état de sortie des tâches intégrées est zéro, sauf en cas d'erreur.

Remarques
Les travaux intégrés sont semi-spéciaux intégrés.

La norme POSIX définit la -l et -p options uniquement : les autres options ne peuvent pas être utilisées dans
Mode POSIX-correct. En mode POSIXly-correct, l'effet de la -l option est
différent dans le sens où l'état est signalé pour chaque travail plutôt que pour chaque processus.

L'ID de groupe de processus d'un travail exécuté par yash est égal à l'ID de processus du premier
commande du pipeline qui forme le travail.

KILL SLIP INTÉGRÉ


Le manuel de formation tuer intégré envoie un signal aux processus.

Syntaxe
· tuer [-signal|-s signal|-n signal] processus...

· tuer -l [-v] [signal...]

La commande intégrée kill requiert que toutes les options précèdent les opérandes. Tous les arguments de la ligne de commande
après le premier opérande sont tous traités comme des opérandes.

Description
Lorsqu'il est exécuté sans le -l l'option intégrée envoie un signal aux processus. Le signal
envoyé peut être spécifié par option. Le signal SIGTERM est envoyé si aucun signal n'est spécifié.

Lorsqu'il est exécuté avec le -l option, les informations d'impression intégrées de signals au
sortie standard. Sinon signal est spécifié, les informations de tous les signaux sont imprimées.

Options
Spécification de signal Options
-signal, -s signal, -n signal
Une option de spécification de signal spécifie un signal à envoyer aux processus. signal Vous pouvez
être spécifié par un nom ou un numéro. Si nombre 0 est spécifié, la fonction intégrée vérifie si un
signal pourrait être envoyé aux processus mais aucun signal n'est réellement envoyé. Noms des signaux
sont insensibles à la casse.

Vous pouvez spécifier au plus une option de spécification de signal à la fois.

Autres Options
-l
Imprimer les informations du signal au lieu d'envoyer un signal.

-v
Imprimer plus d'informations sur le signal.

Sans cette option, la fonction intégrée imprime uniquement le nom du signal. Cette option ajoute
le numéro du signal et une brève description.

When the -v l'option est spécifiée, le -l option peut être omise.

Opérandes
processuses
Spécifiez les processus auxquels un signal est envoyé.

Les processus peuvent être spécifiés par l'ID de processus, l'ID de groupe de processus ou l'ID de travail. La
L'ID de groupe de processus doit être précédé d'un trait d'union (-) afin qu'il ne soit pas traité comme un
ID de processus.

Quand 0 est spécifié comme processus, le signal est envoyé au groupe de processus auquel le
processus shell appartient. Lorsque -1 est spécifié, le signal est envoyé à tous les processus sur
le système.

signal
Spécifiez un signal dont les informations sont imprimées.

Le signal peut être spécifié par le nom, le numéro ou l'état de sortie d'une commande
qui a été tué par le signal.

Sortie statuts
L'état de sortie de la commande intégrée kill est zéro sauf s'il y a une erreur. Si le signal était
envoyé à au moins un processus, l'état de sortie est nul même si le signal n'a pas été envoyé à
tous les processus spécifiés.

Remarques
Le kill intégré est un intégré semi-spécial.

Les arguments de commande commençant par un trait d'union doivent être utilisés avec précaution. La commande tuer -1
-2, par exemple, envoie le signal 1 au groupe de processus 2 puisque -1 est traité comme un
option de spécification de signal et -2 comme opérande qui spécifie un groupe de processus. Les commandes
tuer -- -1 -2 et tuer -TERME -1 -2, d'autre part, traite à la fois -1 et -2 comme opérandes.

La norme POSIX ne définit pas la -n or -v options, de sorte qu'ils ne peuvent pas être utilisés dans le
Mode POSIX-correct. La norme ne permet pas de spécifier un numéro de signal comme
argument de la -s option ou un nom de signal comme signal opérande.

La norme exige que les noms de signal soient spécifiés sans le SIG préfixe, comme INT et
QUITTER. Si le shell n'est pas en mode POSIXly-correct, la fonction intégrée accepte SIG-préfixé
les noms des signaux également.

popd SLIP INTÉGRÉ


Le manuel de formation popd intégré extrait un répertoire de la pile de répertoires.

Syntaxe
· popd [indice]

Description
La fonction intégrée popd supprime la dernière entrée de la pile de répertoires, retournant au
répertoire de travail précédent. Si indice est donnée, l'entrée spécifiée par indice est retiré
à la place du dernier.

Opérandes
indice
L'index d'une entrée de pile de répertoires que vous souhaitez supprimer.

Si omis, +0 (la dernière entrée) est supposée.

Sortie statuts
L'état de sortie de la fonction intégrée popd est zéro à moins qu'il n'y ait une erreur.

Remarques
C'est une erreur d'utiliser cette fonction intégrée lorsqu'il n'y a qu'une seule entrée de pile de répertoires.

L'intégré popd n'est pas défini dans la norme POSIX.

IMPRIMER SLIP INTÉGRÉ


Le manuel de formation printf intégré imprime les valeurs formatées.

Syntaxe
· printf le format [Plus-value...]

Description
Les formats intégrés printf Plus-values selon le format et les imprime à la norme
production. Contrairement à la fonction intégrée echo, la fonction intégrée printf n'imprime pas de saut de ligne
automatiquement.

Le processus de formatage est très similaire à celui de la fonction printf dans la programmation C
Langue. Vous pouvez utiliser les spécifications de conversion (qui commencent par %) et séquences d'échappement
(qui commencent par \) dans le format. Tous les autres caractères qui ne font pas partie d'une conversion
la spécification ou la séquence d'échappement sont imprimées littéralement.

Conversion caractéristiques
Une spécification de conversion commence par un signe de pourcentage (%).

Une spécification de conversion sauf %% consomme un Plus-value, qui est formaté selon
la spécification et imprimé. Chaque spécification de conversion consomme une Plus-value dans le
ordre d'apparition. S'il y a plus Plus-values que les spécifications de conversion, la
tout le format est retraité jusqu'à ce que tous les Plus-values sont consommés. Si un Plus-value être
consommé est manquant, il est supposé être une chaîne vide (si la spécification
nécessite une chaîne) ou zéro (s'il s'agit d'un nombre). Sinon Plus-values sont donnés, le format est traité
juste une fois.

Les spécifications de conversion disponibles sont :

%d, %i
imprime un entier signé en décimal

%u
imprime un entier non signé en décimal

%o
imprime un entier non signé en octal

%x
imprime un entier non signé en hexadécimal minuscule

%X
imprime un entier non signé en hexadécimal majuscule

%f
imprime un nombre à virgule flottante en minuscule

%F
imprime un nombre à virgule flottante en majuscule

%e
imprime un nombre à virgule flottante avec un exposant en minuscule

%E
imprime un nombre à virgule flottante avec exposant en majuscule

%g
le même que %f or %e, sélectionné automatiquement

%G
le même que %F or %E, sélectionné automatiquement

%c
imprime le premier caractère de la chaîne

%s
imprime une chaîne

%b
imprime une chaîne (reconnaissant les séquences d'échappement comme l'écho intégré)

%%
imprime un signe de pourcentage (%)

Pour %g et %G, la spécification réellement utilisée est %f or %F si l'exposant
la partie est comprise entre -5 et la précision (exclusive) ; %e or %E autrement.

Dans une spécification de conversion, sauf %%, le premier signe de pourcentage peut être suivi de
drapeaux, largeur de champ et/ou précision dans cet ordre.

Les drapeaux sont une séquence de n'importe quel nombre des caractères suivants :

Signe moins (-)
Avec cet indicateur, des espaces sont ajoutés à la valeur formatée pour remplir le champ
largeur. Sinon, les espaces sont ajoutés.

signe plus (+)
Un signe plus ou moins est toujours ajouté au début d'un nombre.

Espace ( )
Un espace est ajouté au début d'un nombre formaté s'il n'a pas de signe plus ou moins.

signe dièse (#)
La valeur est formatée sous une forme alternative : pour %o, l'entier octal imprimé
a au moins un zéro non significatif. Pour %x et %X, un entier non nul est formaté avec
0x et 0X préfixes, respectivement. Pour %e, %E, %f, %F, %get %G, un signe décimal
(alias caractère de base) est toujours imprimé même si la valeur est un entier exact.
Pour %g et %G, le nombre imprimé a au moins un chiffre dans la partie fractionnaire.

Zéro (0)
Des zéros sont ajoutés à un nombre formaté pour remplir jusqu'à la largeur du champ. Ce drapeau
est ignoré si l'indicateur moins est spécifié ou si la spécification de conversion est
%d, %i, %u, %o, %x, ou %X avec une précision.

Une largeur de champ est spécifiée sous la forme d'un entier décimal sans zéro de tête.

Une largeur de champ définit un nombre d'octets minimum d'une valeur formatée. Si le formaté
valeur n'atteint pas le nombre d'octets minimum, tant d'espaces sont ajoutés que le
la valeur imprimée a le nombre d'octets spécifié.

Une précision est spécifiée sous la forme d'une période (.) suivi d'un entier décimal. Si l'entier
est omis après la période, la précision est supposée être nulle.

Pour les spécifications de conversion %d, %i, %u, %o, %xet %X, une précision définit un
nombre minimal de chiffres. Si l'entier formaté n'atteint pas le nombre minimum de chiffres,
tant de zéros sont ajoutés que l'entier imprimé a le nombre spécifié de
chiffres. La précision par défaut est un pour ces spécifications de conversion.

Pour les spécifications de conversion %e, %E, %fet %F, une précision définit le nombre de
chiffres après la virgule. La précision par défaut est de six pour ces conversions
cahier des charges.

Pour les spécifications de conversion %get %G, une précision définit un nombre maximum de
chiffres significatifs dans la valeur imprimée. La précision par défaut est de six pour ces
spécifications de conversion.

Pour les spécifications de conversion %set %b, une précision définit un nombre maximal d'octets de
la chaîne imprimée. La précision par défaut est l'infini pour ces conversions
cahier des charges.

Dans la spécification de conversion % 08.3f, le drapeau zéro est spécifié, la largeur du champ est
8 et la précision est de 3. Si cette spécification est appliquée à la valeur 12.34, la sortie
sera 0012.340.

Échapper séquences
Les séquences d'échappement suivantes sont reconnues dans le format:

\a
Caractère cloche (code ASCII : 7)

\b
Retour arrière (code ASCII : 8)

\f
Caractère de saut de page (code ASCII : 12)

\n
Caractère de saut de ligne (code ASCII : 10)

\r
Caractère de retour chariot (code ASCII : 13)

\t
Caractère de tabulation horizontale (code ASCII : 9)

\v
Caractère de tabulation verticale (code ASCII : 11)

\\
Barre oblique inverse

\"
Citation double

\'
Guillemet simple (apostrophe)

\xxx
Caractère dont le code est xxx, Où xxx est un nombre octal d'au plus trois chiffres.

Opérandes
le format
Une chaîne qui définit comment Plus-values doit être formaté.

Plus-values
Les valeurs qui sont formatées selon le format.

Une valeur est soit un nombre, soit une chaîne.

Lorsqu'une valeur numérique est requise, Plus-value peut être une citation simple ou double suivie
par un caractère, au lieu d'un nombre normal. Par exemple, la commande printf '%ré' '"3'
va imprimer 51 sur un environnement typique où le caractère 3 a le code de caractère 51.

Sortie statuts
L'état de sortie de la fonction intégrée printf est zéro sauf s'il y a une erreur.

Remarques
La norme POSIX ne définit pas précisément comment les caractères multi-octets doivent être traités par
l'encastré. Lorsque vous utilisez le %s spécification de conversion avec précision ou la %c
spécification de conversion, vous pouvez obtenir des résultats inattendus si la valeur formatée
contient un caractère représenté par plusieurs octets. Yash n'imprime jamais seulement
partie des octets qui représentent un seul caractère multioctet car tous les caractères multioctets
les caractères sont convertis en caractères larges lorsqu'ils sont traités dans le shell.

pushd SLIP INTÉGRÉ


Le manuel de formation pushd intégré pousse un répertoire dans la pile de répertoires.

Syntaxe
· pushd [-L|-P] [annuaire]

Description
L'intégré pushd change le répertoire de travail en annuaire de la même manière que le cd
intégré et l'ajoute à la pile de répertoires. Si le répertoire de travail n'a pas pu être modifié
avec succès, la pile n'est pas modifiée.

Options
L'intégré pushd accepte l'option suivante ainsi que les options qui peuvent être utilisées
pour le cd intégré :

--supprimer les doublons
Si le nouveau répertoire de travail a déjà été dans la pile de répertoires, le
L'entrée est supprimée de la pile avant que le nouveau répertoire ne soit poussé dans la pile.

Opérandes
annuaire
Le chemin du nouveau répertoire de travail.

If annuaire est un simple trait d'union ('-'), la valeur du ANCIENWD la variable est supposée pour
le nouveau chemin d'accès au répertoire, qui est affiché sur la sortie standard.

If annuaire est un entier avec un signe plus ou moins, il est considéré comme une entrée
index de la pile de répertoires. L'entrée est supprimée de la pile, puis poussée vers
la pile à nouveau.

If annuaire est omis, le répertoire de travail est remplacé par le répertoire spécifié
par le --répertoire-par défaut=... option. Si cette option n'est pas spécifiée non plus, le
la valeur par défaut est l'index +1.

Sortie statuts
L'état de sortie de la fonction intégrée pushd est zéro sauf s'il y a une erreur.

Remarques
L'intégré pushd n'est pas défini dans la norme POSIX.

PWD SLIP INTÉGRÉ


Le manuel de formation pwd intégré imprime le répertoire de travail courant.

Syntaxe
· pwd [-L|-P]

Description
La fonction intégrée pwd imprime un chemin absolu vers le répertoire de travail actuel du shell vers le
sortie standard.

Options
-L, --logique
Si la valeur du PWD variable est un chemin absolu vers le répertoire de travail du shell
et le chemin ne contient aucun . or .. composants, le chemin est imprimé.
Sinon, le chemin imprimé est le même que lorsque le -P est spécifiée.

-P, --physique
Le chemin imprimé ne contient aucun . or .. composants, composants de liens symboliques,
ou des barres obliques redondantes.

Le manuel de formation -L (--logique) et -P (--physique) les options s'excluent mutuellement : seule la dernière
celui spécifié est efficace. Si ni l'un ni l'autre n'est spécifié, -L est assumé.

Sortie statuts
L'état de sortie de la fonction intégrée pwd est zéro sauf en cas d'erreur.

Remarques
L'intégré pwd est un intégré semi-spécial.

LIS SLIP INTÉGRÉ


Le manuel de formation lire intégré lit une ligne à partir de l'entrée standard.

Syntaxe
· lire [-Aer] [-P|-p] variable...

Description
L'intégrée read lit une ligne de chaîne à partir de l'entrée standard et l'affecte au
variables spécifiées.

Si la -r (--mode-brut) est spécifiée, tous les caractères de la ligne sont traités
Littéralement.

Si la -r (--mode-brut) n'est pas spécifiée, les barres obliques inverses dans la ligne sont traitées comme
citations. Si une barre oblique inverse est à la fin de la ligne, elle est traitée comme une ligne
continuation. Lorsque la fonction intégrée lit la ligne suivante, le PS2 la variable est utilisée comme invite
si le shell est interactif et que l'entrée standard est un terminal.

La ligne d'entrée est sujette à un fractionnement de champ. Les mots résultants sont affectés à
variables dans l'ordre. S'il y a plus de mots que variables, la dernière variable est affectée
tous les mots restants (comme si les mots n'étaient pas séparés). Si les mots sont moins de
variables, les variables restantes reçoivent des chaînes vides.

Options
-A, --déployer
Faire le dernier variable un tableau. Au lieu d'attribuer une concaténation des éléments restants
mots à une variable normale, les mots sont affectés à un tableau.

-e, --édition de ligne
Utilisez l'édition de ligne pour lire la ligne.

Pour utiliser l'édition de ligne, toutes les conditions suivantes doivent également être remplies :

· Le shell est interactif.

· L'option vi ou emacs est activée.

· L'entrée standard et l'erreur standard sont connectées à une borne.

-P, --ps1
Imprimez les PS1 variable comme invite avant de lire la (première) ligne si le shell est
interactif et l'entrée standard est un terminal.

-p prompt , --invite=prompt
Imprimer le spécifié prompt avant de lire la (première) ligne si le shell est interactif
et l'entrée standard est un terminal.

-r, --mode-brut
Ne considérez pas les barres obliques inverses comme des guillemets.

Opérandes
variables
Noms des variables auxquelles les mots d'entrée sont affectés.

Sortie statuts
L'état de sortie de l'intégrée read est zéro sauf s'il y a une erreur.

Notez que l'état de sortie est différent de zéro si une fin de saisie est rencontrée avant la lecture du
ligne entière.

Remarques
La fonction intégrée read est une fonction intégrée semi-spéciale.

La norme POSIX définit la -r option uniquement : les autres options ne peuvent pas être utilisées dans
Mode POSIX-correct.

Le manuel de formation PS1R et PS1S les variables affectent le comportement de l'édition de ligne si PS1 l'invite est utilisée.
La même chose pour PS2.

Readonly SLIP INTÉGRÉ


Le manuel de formation lecture seulement intégré rend les variables et les fonctions en lecture seule.

Syntaxe
· lecture seulement [-pxX] [prénom[=Plus-value(...)...]

· lecture seulement -f[p] [prénom...]

Description
L'intégrée readonly est équivalente à l'intégrée typeset avec la propriété -gr option.

Remarques
L'intégré readonly est un intégré spécial.

La norme POSIX définit la -p option uniquement ; d'autres options ne peuvent pas être utilisées dans le
Mode POSIX-correct. Le POSIX ne permet pas d'utiliser l'option avec des opérandes.

RETOUR SLIP INTÉGRÉ


Le manuel de formation retourner intégré renvoie d'une fonction ou d'un script.

Syntaxe
· retourner [-n] [état_sortie]

Description
Lorsqu'il est exécuté sans le -n (--non-retour), l'une des actions suivantes se produit :

· Si le shell exécute une fonction, l'exécution de la fonction est terminée.

· Si la fonction intégrée dot exécute un script, l'exécution du script est terminée.

· Si le shell exécute un script lors de l'initialisation, l'exécution du script
est terminé.

· Si le shell exécute un trap, l'exécution du trap est terminée pour la
signal actuellement traité.

· Sinon, le shell se ferme à moins qu'il ne soit interactif.

Lorsqu'il est exécuté avec le -n (--non-retour), l'option intégrée ne fait rien d'autre que renvoyer le
spécifié état_sortie.

Options
-n, --non-retour
Ne terminez pas une fonction, un script, un trap ou le shell.

Opérandes
état_sortie
L'état de sortie du fichier intégré.

La valeur doit être un entier non négatif.

S'il est omis, l'état de sortie de la dernière commande exécutée est utilisé. (Mais quand la coquille
exécute un trap, l'état de sortie de la dernière commande avant que le trap ne soit utilisé.)

Sortie statuts
L'état de sortie de la fonction intégrée return est défini par la propriété état_sortie opérande. La sortie
status est également utilisé comme état de sortie de la fonction, du script ou du shell terminé.

Remarques
L'intégrée return est une prédéfinie spéciale.

La norme POSIX prévoit que le état_sortie l'opérande doit être compris entre 0 et 255
(compris). Yash accepte les entiers supérieurs à 255 comme extension.

Dans le standard POSIX, le comportement de l'intégrée return n'est défini que lorsque le shell
exécute une fonction ou un script.

Le standard POSIX ne définit aucune option pour le return intégré ; l'intégré n'accepte pas
options en mode POSIXly-correct.

SET SLIP INTÉGRÉ


Le manuel de formation set intégré définit les options du shell et les paramètres de position.

Syntaxe
· set [options] [opérandes]

· set -o

· set +o

L'intégrée set requiert que toutes les options précèdent les opérandes. Tous les arguments de la ligne de commande
après le premier opérande sont tous traités comme des opérandes.

Description
Lorsqu'elle est exécutée sans aucun argument de commande, la fonction intégrée imprime une liste de toutes les commandes existantes.
variables à l'entrée standard sous une forme qui peut être réutilisée comme commandes qui restaureront
les définitions de variables.

Quand -o est le seul argument de la commande, la fonction intégrée imprime une liste d'options du shell avec
leurs paramètres actuels. Lorsque +o est le seul argument de commande, les commandes d'impression intégrées
qui peuvent être réutilisés pour restaurer les paramètres actuels des options du shell.

Dans d'autres cas, la fonction intégrée modifie les paramètres d'options du shell et/ou les paramètres de position.

Options
Lorsqu'une ou plusieurs options sont spécifiées, la fonction intégrée active ou désactive le shell
options. Une option normale précédée d'un trait d'union active une option shell. Une option qui est
précédé d'un plus (+) au lieu d'un trait d'union désactive une option du shell. Par exemple, les options
-m, -o moniteuret --surveiller activer l'option moniteur et les options +m, +o moniteur,
++moniteur le désactiver.

Le nom d'une option longue est insensible à la casse et peut inclure des caractères non alphanumériques non pertinents.
caractères, qui sont ignorés. Par exemple, les options --le-comp-debug et --LeCompDebug sommes-nous
équivalent. Si aucune est ajouté au nom d'une option longue, le sens est inversé. Pour
Par exemple, --noallexport équivaut à ++toutexport et ++non notifier à --notifier.

Une option peut être spécifiée sous l'une des formes suivantes :

· une option longue, par exemple --allexport

· un -o option avec un nom d'option spécifié comme argument, par exemple -o toutexporter

· une option à un seul caractère, par exemple -a

Toutes les options ne peuvent pas être spécifiées en tant qu'options à caractère unique.

Les options disponibles sont:

tout export (-a)
Lorsque cette option est activée, toutes les variables sont automatiquement exportées lorsqu'elles sont affectées.

accolade-développer
Cette option permet l'extension du contreventement.

cas-glob
(Activé par défaut) Lorsqu'il est activé, la correspondance de modèle est sensible à la casse dans le nom de chemin
vous propose d’explorer.

cogner (+C)
(Activé par défaut) Lorsqu'il est activé, le >la redirection se comporte de la même manière que >|
réorientation.

cur-async, cur-bg, cur-stop
(Activé par défaut) Ces options influent sur le choix du travail en cours (cf. ID du travail).

point-glob
Lorsque cette option est activée, les points au début des noms de fichiers ne sont pas traités spécialement dans
extension du nom de chemin.

emacs
Cette option active l'édition de ligne en mode emacs.

erreur-sortie (-e)
Lorsqu'il est activé, si un pipeline se termine avec un état de sortie différent de zéro, le shell
sort sauf si :

· le pipeline est une condition d'une commande if ou d'une boucle while ou until ;

· le pipeline est préfixé par !; ou

· le pipeline est une seule commande composée autre qu'un groupement de sous-shell.

exécutable (+n)
(Activé par défaut) Les commandes ne sont réellement exécutées que lorsque cette option est activée.
Sinon, les commandes sont simplement analysées et non exécutées. La désactivation de cette option peut être
utile pour la vérification de la syntaxe. Dans un shell interactif, cette option est toujours supposée
activée.

glob étendu
Cette option active l'extension dans l'expansion du nom de chemin.

global (+f)
(Activé par défaut) Cette option active l'extension du nom de chemin.

hachage sur def (-h)
Lorsqu'une fonction est définie lorsque cette option est activée, le shell exécute immédiatement
recherche de chemin de commande pour chaque commande qui apparaît dans la fonction et met en cache le
chemin complet de la commande.

hist-espace
Lorsqu'elles sont activées, les lignes de commande commençant par un espace ne sont pas enregistrées dans la commande
l'histoire.

ignorer-eof
Lorsqu'il est activé, un shell interactif ne se ferme pas lorsque EOF (fin de fichier) est entré. Cette
empêche le shell de sortir lorsque vous appuyez accidentellement sur Ctrl-D.

le-always-rp, le-comp-debug, le-conv-meta, le-no-conv-meta, le-prompt-sp, le-visible-bell
Voir les options du shell sur l'édition en ligne.

marque-dirs
Lorsqu'il est activé, les noms de répertoire résultants sont suffixés par une barre oblique dans l'expansion du nom de chemin.

moniteur (-m)
Cette option active le contrôle des travaux. Cette option est activée par défaut pour un
coquille.

notifier (-b)
Lorsque l'état d'un travail change lorsque cette option est activée, le shell
avise à tout moment. Cette option remplace l'option notify-le.

notifier-le
Cette option est similaire à l'option de notification, mais le changement d'état est uniquement notifié
pendant que le shell attend une entrée avec l'édition de ligne.

null-glob
Lorsque cette option est activée, dans l'expansion des noms de chemin, les modèles qui ne correspondent à aucun nom de chemin sont
supprimé de la ligne de commande plutôt que laissé tel quel.

posixly-correct
Cette option active le mode POSIX-correct.

tout tracer
(Activé par défaut) Lorsque cette option est désactivée, l'option x-trace est temporairement
désactivé pendant que le shell exécute des commandes définies dans le
COMMAND_NOT_FOUND_HANDLER, PROMPT_COMMAND, ou YASH_AFTER_CD variable.

non défini (+u)
(Activé par défaut) Lorsqu'il est activé, les paramètres non définis sont développés en chaînes vides
dans l'expansion des paramètres. Lorsqu'elle est désactivée, l'expansion d'un paramètre indéfini entraîne une
Erreur.

verbeux (-v)
Lorsqu'il est activé, le shell imprime chaque ligne de commande sur l'erreur standard avant d'analyser
et de l'exécuter.

vi
Cette option active l'édition de ligne en mode vi. Cette option est activée par défaut dans
un shell interactif si l'entrée standard et l'erreur sont toutes deux des terminaux.

trace x (-x)
Lorsqu'il est activé, les résultats de l'expansion sont imprimés à l'erreur standard pour chaque
commande simple en cours d'exécution. Lors de l'impression, chaque ligne est précédée d'une expansion
résultat de la PS4 variable. Voir aussi l'option trace-all.

Opérandes
Si un ou plusieurs opérandes sont passés à la fonction intégrée set, les paramètres de position actuels sont
tous supprimés et les opérandes sont définis comme de nouveaux paramètres de position. Si la -- séparateur
(cf. syntaxe des arguments de commande) est passé, les paramètres positionnels sont définis même lorsque
il n'y a pas d'opérandes, auquel cas les nouveaux paramètres de position ne seront rien.

Sortie statuts
L'état de sortie de l'intégrée set est zéro sauf s'il y a une erreur.

Remarques
L'ensemble intégré est un intégré spécial.

Dans la norme POSIX, les options de shell disponibles sont très limitées. La norme ne fait pas
définir:

· options longues telles que --allexport,

· préfixer aucune annuler une option,

· utiliser des lettres majuscules et/ou des caractères non alphanumériques dans les noms d'options

Les options définies dans la norme sont :

· -a, -o toutexporter

· -e, -o erresort

· -m, -o moniteur

· -C, -o nul

· -n, -o noexec

· -f, -o noglob

· -b, -o notifier

· -u, -o nom

· -v, -o verbeux

· -x, -o x trace

· -h

· -o ignorer

· -o nolog

· -o vi

Yash ne prend pas en charge l'option nolog, qui empêche les définitions de fonction d'être
ajouté à l'historique des commandes.

SHIFT SLIP INTÉGRÉ


Le manuel de formation décalage intégré supprime certains paramètres de position.

Syntaxe
· décalage [compter]

Description
Le décalage intégré supprime le premier compter paramètres de position.

Opérandes
compter
Le nombre de paramètres positionnels à supprimer.

C'est une erreur si le nombre réel de paramètres de position est inférieur à compter. Si
omis, la valeur par défaut est un.

Sortie statuts
L'état de sortie de la fonction intégrée shift est zéro sauf s'il y a une erreur.

Remarques
Le décalage intégré est un intégré spécial.

Le nombre de paramètres de position peut être obtenu avec le # paramètre spécial.

SUSPENDRE SLIP INTÉGRÉ


Le manuel de formation suspendre intégré suspend la coque.

Syntaxe
· suspendre [-F]

Description
La fonction intégrée suspend envoie un signal SIGSTOP à tous les processus du groupe de processus auxquels
le processus shell appartient. Le signal suspend les processus (y compris le shell). La
les processus suspendus reprennent lorsqu'ils reçoivent un signal SIGCONT.

Si le shell est interactif et que son ID de groupe de processus est égal à l'ID de processus du
chef de session, le shell affiche un message d'avertissement et refuse d'envoyer un signal à moins que le
-f (--Obliger) est spécifiée. (Dans ce cas, il n'y a pas d'autre shell de contrôle des tâches
qui peut envoyer un signal SIGCONT pour reprendre le shell suspendu, de sorte que le shell ne puisse jamais être
a repris.)

Options
-f, --Obliger
Supprime les avertissements qui empêcheraient le shell d'envoyer un signal.

Sortie statuts
L'état de sortie est zéro si le signal a été envoyé avec succès et différent de zéro sinon.

Remarques
L'intégrée suspend n'est pas définie dans la norme POSIX.

TEST SLIP INTÉGRÉ


Le manuel de formation tester intégré évalue une expression.

Syntaxe
· tester expression

· [ expression ]

Le test intégré ne distingue pas les options et les opérandes ; tous les arguments de la ligne de commande
sont interprétés comme expression. Si la fonction intégrée est exécutée avec le nom [, expression
doit être suivi de ].

Description
Le test intégré évalue expression comme une expression conditionnelle composée de
opérateurs et opérandes décrits ci-dessous. Le statut de sortie est 0 si la condition est vraie et
1 sinon.

Les opérateurs unaires ci-dessous testent un fichier. Si l'opérande filet est un lien symbolique, le fichier
référencé par le lien est testé (sauf pour le -h et -L les opérateurs).

-b filet
filet est un fichier spécial bloc

-c filet
filet est un fichier spécial de caractère

-d filet
filet est un directeur

-e filet
filet existe

-f filet
filet est un fichier normal

-G filet
filetL'ID de groupe de est le même que l'ID de groupe effectif du shell

-g filet
filetL'indicateur set-group-ID de est défini

-h filet
identique à -L

-k filet
filetle bit collant est défini

-L filet
filet est un lien symbolique

-N filet
filet n'a pas été accédé depuis la dernière modification

-O filet
filetL'ID utilisateur de est le même que l'ID utilisateur effectif du shell

-p filet
filet est un FIFO (tube nommé)

-r filet
filet est lisible

-S filet
filet est une prise

-s filet
filet n'est pas vide

-u filet
filetL'indicateur set-user-ID de est défini

-w filet
filet est accessible en écriture

-x filet
filet est exécutable

L'opérateur unaire ci-dessous teste un descripteur de fichier :

-t fd
fd est associé à un terminal

Les opérateurs unaires ci-dessous testent une chaîne :

-n un magnifique
un magnifique n'est pas vide

-z un magnifique
un magnifique est vide

L'opérateur unaire ci-dessous teste une option shell :

-o ?option
option est un nom d'option shell valide

-o option
option est un nom d'option shell valide qui est activé

Les opérateurs binaires ci-dessous comparent les fichiers. Les fichiers inexistants sont considérés comme plus anciens que n'importe quel
fichiers existants.

file1 -NT file2
file1 est plus récent que file2

file1 -pas file2
file1 est plus vieux que file2

file1 -si file2
file1 est un lien dur avec file2

Les opérateurs binaires ci-dessous comparent les chaînes :

string1 = string2
string1 est la même chaîne que string2

string1 != string2
string1 n'est pas la même chaîne que string2

Les opérateurs binaires ci-dessous comparent les chaînes selon l'ordre alphabétique dans le
paramètres régionaux actuels :

string1 === string2
string1 est égal à string2

string1 ! == string2
string1 n'est pas égal à string2

string1 < string2
string1 est inférieur à string2

string1 <= string2
string1 est inférieur ou égal à string2

string1 > string2
string1 est supérieure string2

string1 >= string2
string1 est supérieur ou égal à string2

L'opérateur binaire ci-dessous effectue une correspondance de modèle :

un magnifique =~ modèle
expression régulière étendue modèle allumettes un magnifique

Les opérateurs binaires ci-dessous comparent des entiers :

v1 -eq v2
v1 est égal à v2

v1 -Ne v2
v1 n'est pas égal à v2

v1 -Gt v2
v1 est supérieure v2

v1 -donner v2
v1 est supérieur ou égal à v2

v1 -lt v2
v1 est inférieur à v2

v1 -Le v2
v1 est inférieur ou égal à v2

Les opérateurs binaires ci-dessous comparent les numéros de version :

v1 -veq v2
v1 est égal à v2

v1 -vne v2
v1 n'est pas égal à v2

v1 -vgt v2
v1 est supérieure v2

v1 -vge v2
v1 est supérieur ou égal à v2

v1 -vlt v2
v1 est inférieur à v2

v1 -vle v2
v1 est inférieur ou égal à v2

Les opérateurs ci-dessous peuvent être utilisés pour créer des expressions complexes :

! expression
annuler (inverser) le résultat

( expression )
modifier la priorité des opérateurs

expression1 -a expression2
conjonction logique (et)

expression1 -o expression2
disjonction logique (ou)

Si l'expression est un seul mot sans opérateurs, le -n l'opérateur est supposé. Un vide
l'expression prend la valeur false.

Comparaison of version numéros
La comparaison des numéros de version est similaire à la comparaison des chaînes par ordre alphabétique.
Les différences sont:

· Les chiffres adjacents sont traités comme un nombre entier. Les nombres entiers sont comparés en mathématiques
ordre plutôt que par ordre alphabétique.

· Les chiffres sont considérés comme plus grands que tous les caractères non numériques.

Par exemple, les numéros de version 0.1.2-3 et 00.001.02-3 sont égaux et 0.2.1 est plus petit
que 0.10.0.

Sortie statuts
L'état de sortie du test intégré est 0 si expression est vrai et 1 sinon. La sortie
le statut est 2 si expression ne peut pas être évalué en raison d'une erreur de syntaxe ou de tout autre
les raisons.

Remarques
Les expressions complexes peuvent prêter à confusion et doivent être évitées. Utiliser le composé de la coque
commandes. Par exemple, [ 1 -eq 1 ] && [ -t = 1 ] && ! [ foo ] est préféré à [ 1 -eq 1
-a -t = 1 -a ! foo ].

La norme POSIX prévoit que le statut de sortie doit être supérieur à 1 en cas d'erreur. La
La norme POSIX ne définit pas les opérateurs suivants : -NT, -pas, -si, ==, ===, ! ==, <,
<=, >, >=, =~, -veq, -vne, -vgt, -vge, -vltet -vle. POSIX ne spécifie ni -o en tant que
opérateur unaire.

TEMPS SLIP INTÉGRÉ


Le manuel de formation fois intégré imprime l'utilisation du temps CPU.

Syntaxe
· fois

Description
Les temps intégrés impriment les temps CPU consommés par le processus shell et son enfant
processus à la sortie standard.

L'intégré imprime deux lignes : la première ligne affiche le temps CPU du processus shell et
le second celui de ses processus fils (sans compter ceux qui n'ont pas
résilié). Chaque ligne indique les temps CPU consommés en mode utilisateur et système.

Sortie statuts
L'état de sortie des temps intégrés est zéro sauf s'il y a une erreur.

Remarques
La durée intégrée est une valeur intégrée spéciale.

PIÈGE SLIP INTÉGRÉ


Le manuel de formation piège intégré définit ou imprime les gestionnaires de signaux.

Syntaxe
· piège

· piège action signal...

· piège numéro_de_signal [signal...]

· piège -p [signal...]

Description
Le trap intégré définit ou imprime les actions qui sont prises lorsque le shell reçoit des signaux.
(Ces actions sont appelées pièges.)

Lorsqu'il est exécuté avec action et un ou plusieurs signals, la fonction intégrée définit les pièges pour signals
à action. Si le shell reçoit l'un des signaux, l'action sera prise.

Si le premier opérande est numéro_de_signal au lieu de action, la fonction intégrée réinitialise les pièges pour
numéro_de_signal et signalc'est comme si action était -.

Lorsqu'il est exécuté avec le -p (--imprimer) ou sans opérandes, les impressions intégrées
définit actuellement des interruptions sur la sortie standard dans un format pouvant être exécuté en tant que commandes
qui restaurent les pièges actuels. Si un ou plusieurs signals sont spécifiés, seuls les signaux
sont imprimés. Sinon, tous les signaux avec des actions autres que celles par défaut sont imprimés. (Dans certaines
Dans certaines situations, cependant, le module intégré peut imprimer les paramètres d'interruption précédents au lieu de l'actuel.
Voir les notes ci-dessous.)

Options
-p, --imprimer
Imprimez les paramètres d'interruption actuels.

Opérandes
action
Une action qui sera entreprise lorsque signal est reçu.

If action est un simple trait d'union (-), l'action est réinitialisée à l'action par défaut qui est
défini par le système d'exploitation. Si action est une chaîne vide, le signal est ignoré
à réception. Autrement, action est traitée comme une chaîne de commande : la chaîne est analysée et
exécutés en tant que commandes lorsque le signal est reçu. (Si un signal est reçu alors qu'un
commande est en cours d'exécution, l'action est exécutée juste après la fin de la commande.)

signal
Le numéro ou le nom d'un signal.

If signal est le nombre 0 ou nom EXIT, il est traité comme un signal imaginaire spécial qui
est toujours reçu à la sortie du shell. L'action définie pour ce signal est prise lorsque
le shell sort normalement.

numéro_de_signal
C'est comme signal, mais doit être un nombre.

Sortie statuts
L'état de sortie du trap intégré est zéro sauf en cas d'erreur.

Remarques
Le piège intégré est un intégré spécial.

La norme POSIX exige que les noms de signal soient spécifiés sans le SIG-préfixe,
comme INT et QUITTER. En tant qu'extension, yash accepte SIG-noms préfixés comme SIGINT et
TELLEMENT DE et traite les noms de signaux sans tenir compte de la casse.

Réutilisation sortie of le intégré
La sortie du piège intégré peut être enregistrée dans une variable, qui peut être exécutée ultérieurement par
l'eval intégré pour restaurer les pièges.

save_traps=$(piège)
piège '...' INT
évaluer "$saved_traps"

Il y a quelques astuces dans les coulisses pour permettre cet idiome. Vous utilisez une commande
substitution pour enregistrer la sortie du trap intégré dans la variable. La commande
la substitution est exécutée dans un sous-shell. Le sous-shell réinitialise tous les pièges (sauf ignoré
ceux) au début de lui-même. Cela se traduirait apparemment par une sortie (presque) vide
de l'intégré qui ne parviendrait pas à restaurer les interruptions comme prévu.

Pour éviter cet écueil, POSIX demande au shell de suivre l'une des deux options
ci-dessous :

· Si une substitution de commande ne contient qu'un seul trap intégré, les traps ne doivent pas
être réinitialisé lorsque le sous-shell est lancé pour exécuter la fonction intégrée ; ou

· Un sous-shell réinitialise toujours les traps mais se souvient des traps précédents. Si le piège
built-in est exécuté dans le sous-shell mais aucun autre trap built-in n'a été exécuté
pour modifier les pièges dans le sous-shell, alors le intégré doit imprimer le souvenir
pièges.

Yash obéit au second.

TRUE SLIP INTÉGRÉ


Le manuel de formation oui intégré ne fait rien avec succès.

Syntaxe
· oui

Description
Le vrai intégré ne fait rien. Tous les arguments de ligne de commande sont ignorés.

Sortie statuts
L'état de sortie du true built-in est zéro.

Remarques
Le vrai intégré est un intégré semi-spécial.

Les fonctions intégrées true et deux-points ont le même effet, mais true est une fonction intégrée semi-spéciale
tandis que le côlon est un spécial.

TYPE SLIP INTÉGRÉ


Le manuel de formation type intégré identifie une commande.

Syntaxe
· type [-abefkp] [commander...]

Description
Le type intégré est équivalent à la commande intégrée avec le -V option.

Remarques
La norme POSIX ne définit pas la relation entre les fonctions intégrées de type et de commande.
La norme ne définit pas d'options pour le type intégré.

Au moins un commander l'opérande doit être spécifié dans le mode POSIXly-correct.

COMPOSER SLIP INTÉGRÉ


Le manuel de formation composer intégré imprime ou définit des variables ou des fonctions.

Syntaxe
· composer [-gprxX] [variable[=Plus-value(...)...]

· composer -f[pr] [fonction...]

Description
S'il est exécuté sans le -f (--les fonctions), l'option de composition intégrée imprime ou définit
variables à la sortie standard. Sinon, il imprime ou définit des fonctions.

S'il est exécuté avec le -p (--imprimer), l'option intégrée imprime les variables ou les fonctions
spécifié par des opérandes. Sans l'option, il définit des variables ou des fonctions. Si aucun opérande
sont spécifiés, il imprime toutes les variables ou fonctions existantes, que les -p
(--imprimer) est spécifiée.

Options
-f, --les fonctions
Imprimer ou définir des fonctions plutôt que des variables.

-g, --mondial
Lors de la définition d'une nouvelle variable, la variable sera une variable globale si cette option est
spécifié. Sans cette option, la variable serait une variable locale.

Lors de l'impression de variables, toutes les variables existantes, y compris les variables globales, sont imprimées
si cette option est spécifiée. Sans cette option, seules les variables locales sont imprimées.

-p, --imprimer
Imprimer des variables ou des fonctions sous une forme qui peut être analysée et exécutée en tant que commandes
qui restaurera les variables ou fonctions actuellement définies.

-r, --lecture seulement
Lorsque vous définissez des variables ou des fonctions, rendez-les en lecture seule.

Lors de l'impression de variables ou de fonctions, n'imprimez que les variables ou les fonctions en lecture seule.

-x, --exportation
Lorsque vous définissez des variables, marquez-les pour l'exportation afin qu'elles soient exportées vers
commandes externes.

Lors de l'impression de variables, n'imprimez que les variables exportées.

-X, --désexporter
Lors de la définition des variables, annuler l'exportation des variables.

Opérandes
variable (sans pour autant Plus-value)
Nom d'une variable à définir ou à imprimer.

Sans le -p (--imprimer), la variable est définie (si pas encore définie) mais son
la valeur n'est ni définie ni modifiée. Les variables définies sans valeur sont traitées comme
non défini dans l'extension des paramètres.

variable=Plus-value
Le nom d'une variable et sa nouvelle valeur.

La valeur est affectée à la variable (quel que soit le -p (--imprimeroption )).

fonction
Le nom d'une fonction existante qui doit être définie ou imprimée.

Sortie statuts
L'état de sortie de l'intégrée typeset est zéro sauf s'il y a une erreur.

Remarques
Une variable globale ne peut pas être nouvellement définie si une variable locale a déjà été définie
avec le même nom. La variable locale sera définie quel que soit le -g (--mondial) option.

La norme POSIX ne définit pas la composition intégrée.

Les fonctions intégrées d'exportation et de lecture seule sont équivalentes à la fonction intégrée de composition avec la propriété -gx et
-gr options, respectivement.

ULIMIT SLIP INTÉGRÉ


Le manuel de formation ulimit intégré définit ou imprime une limite de ressources.

Syntaxe
· ulimit -a [-H|-S]

· ulimit [-H|-S] [-efilnqrstuvx] [limite]

Description
La fonction intégrée ulimit définit ou imprime une limite de ressource.

S'il est exécuté avec le -a (--tout), l'option intégrée imprime les limites actuelles pour tous
types de ressources. Sinon, il définit ou imprime la limite d'un seul type de ressource. La
le type de ressource peut être spécifié par les options répertoriées ci-dessous. Les limites de ressources seront
affecte le processus shell actuel et toutes les commandes invoquées depuis le shell.

Chaque type de ressource a deux valeurs limites : la limite stricte et la limite souple. Vous pouvez changer un soft
limiter librement tant qu'il ne dépasse pas la limite stricte. Vous pouvez diminuer une limite stricte
mais ne peut pas l'augmenter sans une autorisation appropriée.

When the -H (--difficile) ou -S (--mou, tendre) est spécifiée, la fonction intégrée définit ou imprime
limite dure ou douce, respectivement. Si aucune des options n'est spécifiée, le
définit à la fois la limite dure et souple ou imprime la limite souple.

Options
-H, --difficile
Définissez ou imprimez une limite stricte.

-S, --mou, tendre
Définissez ou imprimez une limite souple.

-a, --tout
Imprimez tous les paramètres de limite actuels.

Les options suivantes spécifient le type de ressources. Si aucun d'entre eux n'est spécifié, -f is
le défaut. Les types de ressources pouvant être définies dépendent du système d'exploitation.

-c, --coeur
Taille maximale des fichiers core créés (en blocs de 512 octets)

-d, --Les données
Taille maximale du segment de données d'un processus (en kilo-octets)

-e, --joli
Priorité de planification maximale ("nice")

-f, --ftaille
Taille maximale des fichiers créés par un processus (en blocs de 512 octets)

-i, --signature
Nombre maximal de signaux en attente

-l, --memlock
Taille maximale de la mémoire pouvant être verrouillée dans la RAM (en kilo-octets)

-m, --rss
Taille maximale de l'ensemble résident d'un processus (en kilo-octets)

-n, --pas de fichier
Descripteur de fichier maximum + 1

-q, --msgqueue
Taille maximale des files d'attente de messages POSIX

-r, --rtprio
Priorité maximale de planification en temps réel

-s, --empiler
Taille maximale de la pile d'un processus (en kilo-octets)

-t, --CPU
Temps CPU maximal pouvant être utilisé par un processus (en secondes)

-u, --nproc
Nombre maximum de processus pour un utilisateur

-v, --comme
Taille maximale de la mémoire utilisée par un processus (en kilo-octets)

-x, --verrouille
Nombre maximal de verrous de fichiers

Opérandes
limite
Une limite à fixer.

La valeur doit être un entier non négatif ou l'un des dur, qualité, que vous pourrez utilisé et illimité. Si Plus-value
is dur or qualité, que vous pourrez utilisé , la nouvelle limite est définie sur la limite stricte ou souple actuelle. Si limite is
non spécifié, la limite actuelle est imprimée.

Sortie statuts
L'état de sortie de la fonction intégrée ulimit est zéro, sauf en cas d'erreur.

Remarques
La norme POSIX ne définit aucune option autre que -f. Il ne définit ni dur, qualité, que vous pourrez utilisé , ou
illimité pour limite valeurs.

UMASQUE SLIP INTÉGRÉ


Le manuel de formation umask intégré définit ou imprime le masque de création du mode fichier.

Syntaxe
· umask masque

· umask [-S]

Description
S'il est exécuté sans le masque opérande, l'intégré imprime la création du mode de fichier actuel
masque du shell à la sortie standard sous une forme qui peut ensuite être utilisée comme masque à
restaurer le masque actuel.

Sinon, la fonction intégrée définit le masque de création du mode fichier sur masque.

Options
-S, --symbolique
Imprimer sous la forme symbolique au lieu de la forme entière octale.

Opérandes
masque
Le nouveau masque de création de mode de fichier sous la forme d'entier symbolique ou octal.

Octal entier un formulaire de candidature dûment rempli
Sous la forme d'entier octal, le masque est spécifié comme un entier octal non négatif qui
est la somme des autorisations suivantes :

0400
lu par le propriétaire

0200
écrire par le propriétaire

0100
exécuter/rechercher par propriétaire

0040
lire par groupe

0020
écrire par groupe

0010
exécuter/rechercher par groupe

0004
lu par les autres

0002
écrit par d'autres

0001
exécuter/rechercher par d'autres

Symbolique un formulaire de candidature dûment rempli
Dans la forme symbolique, le masque est spécifié comme une expression symbolique qui dénote
autorisations qui sont pas inclus dans le masque.

L'expression entière est un ou plusieurs qui les aurait exempté de leurs obligations si des circonstances hors de leur contrôle les empêchaient de produire le grain sous contrat. s séparés par une virgule. UN qui les aurait exempté de leurs obligations si des circonstances hors de leur contrôle les empêchaient de produire le grain sous contrat. est une
séquence de pour quis suivi d'un ou plusieurs actions.

A pour qui fait partie de:

u
propriétaire

g
groupe

o
autres

a
tous les propriétaires, groupes et autres

Une suite vide de pour quis est équivalent à qui a.

An action est un opérateur suivie par autorisation. Un opérateur fait partie de:

=
set pour quil'autorisation de autorisation

+
ajouter autorisation à pour quil'autorisation de

-
supprimez autorisation grâce au pour quil'autorisation de

et autorisation fait partie de:

r
lire

w
écrire

x
exécuter/rechercher

X
exécuter/rechercher (uniquement si un utilisateur a déjà l'autorisation d'exécution/recherche)

s
set-user-ID et set-group-ID

u
autorisations actuelles de l'utilisateur

g
autorisations actuelles du groupe

o
autorisations actuelles des autres

mais plus d'un de r, w, x, Xet s peut être spécifié après un seul opérande.

Par exemple, la commande umask u=rwx,aller+rw

· démasque les autorisations de lecture, d'écriture et d'exécution/recherche de l'utilisateur ;

· démasque l'autorisation de lecture du groupe et des autres ; et

· masque l'autorisation d'écriture du groupe et des autres.

Sortie statuts
L'état de sortie de la fonction intégrée umask est zéro, sauf en cas d'erreur.

Remarques
La fonction intégrée umask est une fonction intégrée semi-spéciale.

La norme POSIX n'exige pas le format de sortie par défaut (utilisé lorsque le -S option est
non spécifié) sous forme d'entier octal.

UNALIAS SLIP INTÉGRÉ


Le manuel de formation Unalias intégré indéfinit les alias.

Syntaxe
· Unalias prénom...

· Unalias -a

Description
La fonction intégrée unalias supprime la définition des alias spécifiés par les opérandes.

Options
-a, --tout
Annuler la définition de tous les alias.

Opérandes
prénom
Nom d'un alias à indéfinir.

Sortie statuts
L'état de sortie de la fonction intégrée unalias est zéro sauf en cas d'erreur. C'est une erreur
pour spécifier le nom d'un alias inexistant comme prénom.

Remarques
La fonction intégrée unalias est une fonction intégrée semi-spéciale.

UNSET SLIP INTÉGRÉ


Le manuel de formation unset intégré indéfinit des variables ou des fonctions.

Syntaxe
· unset [-fv] [prénom...]

Description
La fonction intégrée unset supprime la définition des variables ou des fonctions spécifiées par
opérandes.

Ce n'est pas une erreur si l'une des variables ou fonctions spécifiées n'existe pas ; elles sont
ignoré en silence.

Options
-f, --les fonctions
Fonctions indéfinies.

-v, --variables
Variables indéfinies.

Ces options s'excluent mutuellement : seule la dernière spécifiée est effective. Si ni l'un ni l'autre
est spécifié, -v est assumé.

Opérandes
prénom
Le nom d'une variable ou d'une fonction à indéfinir.

Sortie statuts
L'état de sortie de la fonction intégrée unset est zéro sauf s'il y a une erreur.

Remarques
La fonction intégrée unset est une fonction intégrée spéciale.

Bien que yash ne le fasse pas, la norme POSIX permet de supprimer une fonction si aucune des
le -f et -v options est spécifié et la variable spécifiée n'existe pas.

Au moins un prénom l'opérande doit être spécifié dans le mode POSIXly-correct.

TAILLES SLIP INTÉGRÉ


Le manuel de formation attendez intégré attend que les travaux se terminent.

Syntaxe
· attendez [JOB...]

Description
La fonction intégrée wait attend que les tâches d'arrière-plan se terminent. Si le contrôle des travaux est activé,
les travaux arrêtés sont considérés comme terminés.

La fonction intégrée peut être utilisée pour attendre des commandes asynchrones si le contrôle des tâches est désactivé.

Si le shell reçoit un signal pendant que l'intégré attend et si un piège a été défini
pour le signal, le déroutement est exécuté et la fonction intégrée se termine immédiatement (sans
en attendant les travaux). Si le shell reçoit un signal SIGINT lorsque le contrôle des tâches est activé,
les abandons intégrés en attente.

Opérandes
JOB
L'ID de travail du travail ou l'ID de processus d'un processus dans le travail.

Sinon JOBs sont spécifiés, la fonction intégrée attend toutes les tâches existantes.

Si le travail spécifié n'existe pas, le travail est considéré comme terminé avec le
état de sortie de 127.

Sortie statuts
Sinon JOBs ont été spécifiés et le module intégré a attendu avec succès tous les travaux, la sortie
le statut est nul. Si un ou plusieurs JOBs ont été spécifiés, le statut de sortie est celui du dernier
JOB.

Si l'intégration a été interrompue par un signal, l'état de sortie est un entier (> 128) qui
désigne le signal. S'il y a eu une autre erreur, le statut de sortie est compris entre 1 et 126
(compris).

Remarques
La fonction intégrée wait est une fonction intégrée semi-spéciale.

L'ID de processus du dernier processus d'un travail peut être obtenu par le ! paramètre spécial.
Vous pouvez également utiliser les travaux intégrés pour obtenir les ID de processus des processus de travail.

Utilisez yash en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.