Il s'agit de la commande ash qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks à l'aide de 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
tiret — interpréteur de commandes (shell)
SYNOPSIS
tiret [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o nom_option] [+o nom_option]
[fichier_commande [argument ...]]
tiret -c [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o nom_option] [+o nom_option]
chaîne_commande [nom_commande [argument ...]]
tiret -s [-aCefnuvxIimqVEbp] [+aCefnuvxIimqVEbp] [-o nom_option] [+o nom_option]
[argument ...]
DESCRIPTION
tiret est l'interpréteur de commandes standard pour le système. La version actuelle de tiret est en
le processus de modification pour se conformer aux spécifications POSIX 1003.2 et 1003.2a pour
La coquille. Cette version possède de nombreuses fonctionnalités qui la font ressembler à certains égards à
le shell Korn, mais ce n'est pas un clone du shell Korn (voir ksh(1)). Seules les caractéristiques désignées par
POSIX, ainsi que quelques extensions Berkeley, sont incorporés dans ce shell. Cet homme
La page n'est pas destinée à être un didacticiel ou une spécification complète du shell.
Vue d'ensemble
Le shell est une commande qui lit les lignes d'un fichier ou du terminal, les interprète,
et exécute généralement d'autres commandes. C'est le programme qui s'exécute lorsqu'un utilisateur se connecte
dans le système (bien qu'un utilisateur puisse sélectionner un autre shell avec le chsh(1) commande).
Le shell implémente un langage qui a des constructions de contrôle de flux, une fonction macro qui
fournit une variété de fonctionnalités en plus du stockage de données, ainsi qu'un historique et
capacités d'édition de ligne. Il intègre de nombreuses fonctionnalités pour faciliter l'utilisation interactive et a le
avantage que la langue interprétative est commune à la fois interactive et non interactive
utiliser (scripts shell). C'est-à-dire que les commandes peuvent être saisies directement dans le shell en cours d'exécution ou peuvent être
mis dans un fichier et le fichier peut être exécuté directement par le shell.
Invocation
Si aucun argument n'est présent et si l'entrée standard du shell est connectée à un terminal (ou
si le -i est défini), et le -c l'option n'est pas présente, le shell est considéré comme un
coquille interactive. Un shell interactif invite généralement avant chaque commande et gère
les erreurs de programmation et de commande différemment (comme décrit ci-dessous). Lors du premier démarrage, le
shell inspecte l'argument 0, et s'il commence par un tiret '-', le shell est également considéré comme un
shell de connexion. Cela est normalement fait automatiquement par le système lorsque l'utilisateur se connecte pour la première fois.
Un shell de connexion lit d'abord les commandes à partir des fichiers / etc / profile et .profil s'ils existent.
Si la variable d'environnement ENV est définie à l'entrée dans un shell interactif, ou est définie dans le
.profil d'un shell de connexion, le shell lit ensuite les commandes à partir du fichier nommé dans ENV.
Par conséquent, un utilisateur doit placer des commandes qui ne doivent être exécutées qu'au moment de la connexion dans le
.profil et les commandes qui sont exécutées pour chaque shell interactif à l'intérieur de l'ENV
déposer. Pour définir la variable ENV sur un fichier, placez la ligne suivante dans votre .profil of
votre répertoire personnel
ENV=$HOME/.shinit; exporter ENV
en remplaçant ".shinit" par le nom de fichier que vous souhaitez.
Si des arguments de ligne de commande en plus des options ont été spécifiés, alors le shell traite le
premier argument comme nom d'un fichier à partir duquel lire les commandes (un script shell), et le
les arguments restants sont définis comme les paramètres de position du shell (1 $, 2 $, etc.).
Sinon, le shell lit les commandes à partir de son entrée standard.
Argument Liste Gestion
Toutes les options d'une seule lettre qui ont un nom correspondant peuvent être utilisées comme argument
à la -o option. L'ensemble -o le nom est fourni à côté de l'option à une seule lettre dans le
descriptif ci-dessous. La spécification d'un tiret « - » active l'option, tout en utilisant un plus « + »
désactive l'option. Les options suivantes peuvent être définies à partir de la ligne de commande ou avec le set
intégré (décrit plus loin).
-a toutexporter Exporter toutes les variables affectées à.
-c Lire les commandes du chaîne_commande opérande au lieu de
entrée standard. Le paramètre spécial 0 sera réglé à partir du
nom_commande l'opérande et les paramètres de position (1 $, 2 $, etc.)
défini à partir des opérandes d'argument restants.
-C nul N'écrasez pas les fichiers existants avec « > ».
-e erresort S'il n'est pas interactif, quittez immédiatement si une commande non testée échoue.
L'état de sortie d'une commande est considéré comme explicitement testé si
la commande est utilisée pour contrôler un if, Elif, tout en, ou jusqu'au; ou si
la commande est l'opérande gauche d'un "&&" ou "||" opérateur.
-f noglob Désactivez l'extension du nom de chemin.
-n noexec Si elles ne sont pas interactives, lisez les commandes mais ne les exécutez pas. C'est
utile pour vérifier la syntaxe des scripts shell.
-u nom Écrire un message d'erreur standard lors d'une tentative d'extension d'un
variable qui n'est pas définie, et si le shell n'est pas interactif, quittez
immédiatement.
-v verbeux Le shell écrit son entrée dans l'erreur standard au fur et à mesure de sa lecture. Utile
pour le débogage.
-x x trace Écrivez chaque commande à l'erreur standard (précédée d'un '+') avant elle
est exécuté. Utile pour le débogage.
-I ignorer Ignorer les EOF de l'entrée lorsqu'il est interactif.
-i Interactif Forcer le shell à se comporter de manière interactive.
-l Faites en sorte que dash agisse comme s'il avait été invoqué en tant que shell de connexion.
-m moniteur Activez le contrôle des tâches (défini automatiquement lorsqu'il est interactif).
-s Stdin Lire les commandes à partir de l'entrée standard (définie automatiquement si aucun fichier
arguments sont présents). Cette option n'a aucun effet lorsqu'elle est définie après la
shell a déjà commencé à fonctionner (c'est-à-dire avec set).
-V vi Activer la fonction intégrée vi(1) éditeur de ligne de commande (désactive -E s'il a
été réglé).
-E emacs Activer la fonction intégrée emacs(1) éditeur de ligne de commande (désactive -V si ça
a été mis en).
-b notifier Activez la notification asynchrone de l'achèvement de la tâche en arrière-plan.
(NON IMPLÉMENTÉ pour 4.4alpha)
-p priv N'essayez pas de réinitialiser l'uid effectif s'il ne correspond pas à l'uid. Cette
n'est pas défini par défaut pour éviter une utilisation incorrecte par setuid root
programmes via Système(3) ou pope (3).
Lexical Structure
Le shell lit les entrées en termes de lignes d'un fichier et les décompose en mots à
espaces blancs (espaces et tabulations), et à certaines séquences de caractères qui sont spéciales au
shell appelé « opérateurs ». Il existe deux types d'opérateurs : les opérateurs de contrôle et les
opérateurs de redirection (leur signification est discutée plus loin). Voici une liste d'opérateurs :
Opérateurs de contrôle :
& && ( ) ; ;; | ||
Opérateurs de redirection :
< > >| << >> <& >& <<- <>
Citant
Les guillemets sont utilisés pour supprimer le sens spécial de certains caractères ou mots dans le shell,
tels que des opérateurs, des espaces ou des mots-clés. Il existe trois types de devis :
guillemets simples, guillemets doubles correspondants et barre oblique inverse.
Barre oblique inverse
Une barre oblique inverse préserve le sens littéral du caractère suivant, à l'exception de
⟨nouvelle ligne⟩. Une barre oblique inverse précédant une « nouvelle ligne » est traitée comme une continuation de ligne.
Single Devis
Mettre les caractères entre guillemets simples préserve le sens littéral de tous les caractères
(à l'exception des guillemets simples, ce qui rend impossible l'insertion de guillemets simples dans une chaîne entre guillemets simples).
Double Devis
L'inclusion de caractères entre guillemets préserve le sens littéral de tous les caractères
sauf le signe dollar ($), les guillemets inversés (`) et la barre oblique inverse (\). La barre oblique inverse entre guillemets doubles
est historiquement étrange, et sert à ne citer que les caractères suivants :
$ ` " \ .
Sinon, cela reste littéral.
Reservé Paroles
Les mots réservés sont des mots qui ont une signification particulière pour le shell et sont reconnus au
début de ligne et après un opérateur de contrôle. Les mots suivants sont réservés :
! elif fi tandis que cas
sinon pour alors { }
faire jusqu'à ce que si esac
Leur signification est discutée plus tard.
Alias
Un alias est un nom et une valeur correspondante définis à l'aide de la alias(1) commande intégrée. N'importe quand
un mot réservé peut apparaître (voir ci-dessus), et après avoir vérifié les mots réservés, le shell
vérifie le mot pour voir s'il correspond à un alias. Si c'est le cas, il le remplace dans l'entrée
stream avec sa valeur. Par exemple, s'il existe un alias appelé "lf" avec la valeur "ls
-F", puis l'entrée :
Si foobar "retour"
deviendrait
ls -F foobar retour
Les alias offrent aux utilisateurs naïfs un moyen pratique de créer des raccourcis pour les commandes sans
devoir apprendre à créer des fonctions avec des arguments. Ils peuvent également être utilisés pour créer
code lexicalement obscur. Cette utilisation est déconseillée.
Commandes
Le shell interprète les mots qu'il lit selon un langage dont la spécification
sort du cadre de cette page de manuel (se référer au BNF dans le document POSIX 1003.2).
Essentiellement cependant, une ligne est lue et si le premier mot de la ligne (ou après un contrôle
opérateur) n'est pas un mot réservé, alors le shell a reconnu une commande simple.
Sinon, une commande complexe ou une autre construction spéciale peut avoir été reconnue.
Simple Commandes
Si une commande simple a été reconnue, le shell effectue les actions suivantes :
1. Les premiers mots de la forme « nom=valeur » sont supprimés et attribués au
environnement de la commande simple. Les opérateurs de redirection et leurs arguments (comme
décrites ci-dessous) sont supprimées et enregistrées pour le traitement.
2. Les mots restants sont développés comme décrit dans la section intitulée « Extensions »,
et le premier mot restant est considéré comme le nom de la commande et la commande est
situé. Les mots restants sont considérés comme les arguments de la commande. Sinon
le nom de la commande a résulté, puis les affectations de variables « nom=valeur » reconnues dans
l'élément 1 affecte le shell actuel.
3. Les redirections sont effectuées comme décrit dans la section suivante.
Redirections
Les redirections sont utilisées pour changer l'endroit où une commande lit son entrée ou envoie sa sortie. Dans
En général, les redirections ouvrent, ferment ou dupliquent une référence existante à un fichier. Les
le format global utilisé pour la redirection est :
[n] redir-op filet
où redir-op est l'un des opérateurs de redirection mentionnés précédemment. Voici un
liste des redirections possibles. Le [n] est un nombre facultatif, comme dans '3' (pas '[3]'),
qui fait référence à un descripteur de fichier.
[n]> file Rediriger la sortie standard (ou n) vers le fichier.
[n]>| fichier Idem, mais remplace le -C option.
[n]>> fichier Ajoute la sortie standard (ou n) au fichier.
[n]< fichier Rediriger l'entrée standard (ou n) à partir du fichier.
[n1]<&n2 Dupliquer l'entrée standard (ou n1) à partir du descripteur de fichier n2.
[n]<&- Ferme l'entrée standard (ou n).
[n1]>&n2 Dupliquer la sortie standard (ou n1) vers n2.
[n]>&- Ferme la sortie standard (ou n).
[n]<> fichier Ouvrir le fichier en lecture et en écriture sur l'entrée standard (ou n).
La redirection suivante est souvent appelée « here-document ».
[n]<< délimiteur
ici-doc-texte ...
délimiteur
Tout le texte sur les lignes successives jusqu'au délimiteur est enregistré et mis à la disposition du
commande sur l'entrée standard, ou descripteur de fichier n s'il est spécifié. Si le délimiteur comme
spécifié sur la ligne initiale est entre guillemets, alors le here-doc-text est traité littéralement,
sinon, le texte est soumis à l'expansion des paramètres, à la substitution de commandes et à l'arithmétique
expansion (comme décrit dans la section sur les « Extensions »). Si l'opérateur est "<<-" à la place
de "<<", puis les tabulations de début dans le texte here-doc sont supprimées.
Rechercher et Internationaux
Il existe trois types de commandes : les fonctions shell, les commandes intégrées et les programmes normaux --
et la commande est recherchée (par nom) dans cet ordre. Ils sont chacun exécutés dans un
autrement.
Lorsqu'une fonction shell est exécutée, tous les paramètres positionnels du shell (sauf $0, qui
reste inchangé) sont définis sur les arguments de la fonction shell. Les variables qui sont
explicitement placés dans l'environnement de la commande (en leur attribuant des affectations avant
le nom de la fonction) sont rendus locaux à la fonction et sont définis sur les valeurs données. Puis le
la commande donnée dans la définition de la fonction est exécutée. Les paramètres de position sont
restaurés à leurs valeurs d'origine lorsque la commande se termine. Tout cela se passe dans le
coque actuelle.
Les commandes intégrées du shell sont exécutées en interne dans le shell, sans générer de nouveau processus.
Sinon, si le nom de la commande ne correspond pas à une fonction ou à une fonction intégrée, la commande est recherchée
pour en tant que programme normal dans le système de fichiers (comme décrit dans la section suivante). Lorsqu'un
programme normal est exécuté, le shell exécute le programme, en passant les arguments et le
environnement au programme. Si le programme n'est pas un fichier exécutable normal (c'est-à-dire s'il
ne commence pas par le "nombre magique" dont la représentation ASCII est "#!", donc executif(2)
renvoie ENOEXEC puis) le shell interprétera le programme dans un sous-shell. La coquille d'enfant
se réinitialisera dans ce cas, de sorte que l'effet sera comme si un nouveau shell avait été
invoqué pour gérer le script shell ad-hoc, sauf que l'emplacement des commandes hachées
situé dans le shell parent sera mémorisé par l'enfant.
Notez que les versions précédentes de ce document et le code source lui-même sont trompeurs et
se réfèrent sporadiquement à un script shell sans numéro magique en tant que "procédure shell".
Chemin Rechercher
Lors de la localisation d'une commande, le shell regarde d'abord s'il a une fonction shell par cela
Nom. Ensuite, il recherche une commande intégrée de ce nom. Si une commande intégrée n'est pas trouvée,
l'une des deux choses suivantes se produit :
1. Les noms de commandes contenant une barre oblique sont simplement exécutés sans effectuer aucune recherche.
2. Le shell recherche la commande dans chaque entrée de PATH. La valeur du CHEMIN
La variable doit être une série d'entrées séparées par des deux-points. Chaque entrée se compose d'un
nom du répertoire. Le répertoire courant peut être indiqué implicitement par un
nom du répertoire, ou explicitement par un seul point.
Command Sortie Statut
Chaque commande a un statut de sortie qui peut influencer le comportement d'autres commandes shell.
Le paradigme est qu'une commande se termine avec zéro pour la normale ou le succès, et non zéro pour
panne, erreur ou fausse indication. La page de manuel de chaque commande doit indiquer le
divers codes de sortie et leur signification. De plus, les commandes intégrées renvoient exit
codes, tout comme une fonction shell exécutée.
Si une commande se compose entièrement d'affectations de variables, alors l'état de sortie de la commande
est celui de la dernière substitution de commande s'il y en a, sinon 0.
Complexité Commandes
Les commandes complexes sont des combinaisons de commandes simples avec des opérateurs de contrôle ou réservées
mots, créant ensemble une commande plus complexe. Plus généralement, une commande est l'une des
Suivante à la suite:
· commande simple
· pipeline
· liste ou liste-composée
· commande composée
· définition de fonction
Sauf indication contraire, l'état de sortie d'une commande est celui de la dernière commande simple
exécuté par la commande.
Pipelines
Un pipeline est une séquence d'une ou plusieurs commandes séparées par l'opérateur de contrôle |. Les
la sortie standard de toutes les commandes sauf la dernière est connectée à l'entrée standard de la suivante
commander. La sortie standard de la dernière commande est héritée du shell, comme d'habitude.
Le format d'un pipeline est :
[!] commande1 [| commande2 ...]
La sortie standard de command1 est connectée à l'entrée standard de command2. Les
l'entrée standard, la sortie standard ou les deux d'une commande est considérée comme affectée par le
pipeline avant toute redirection spécifiée par les opérateurs de redirection qui font partie du
commander.
Si le pipeline n'est pas en arrière-plan (discuté plus loin), le shell attend toutes les commandes
à remplir.
Si le mot réservé ! ne précède pas le pipeline, l'état de sortie est l'état de sortie de
la dernière commande spécifiée dans le pipeline. Sinon, l'état de sortie est le NON logique
de l'état de sortie de la dernière commande. Autrement dit, si la dernière commande renvoie zéro, la sortie
le statut est 1 ; si la dernière commande renvoie une valeur supérieure à zéro, l'état de sortie est zéro.
Parce que l'affectation de pipeline de l'entrée standard ou de la sortie standard ou les deux a lieu avant
redirection, il peut être modifié par redirection. Par exemple:
$ command1 2>&1 | commande2
envoie à la fois la sortie standard et l'erreur standard de command1 à l'entrée standard de
commande2.
UNE ; ou le terminateur ⟨newline⟩ provoque l'exécution de la liste AND-OR précédente (décrite ci-après)
séquentiellement ; a & provoque l'exécution asynchrone de la liste AND-OR précédente.
Notez que contrairement à d'autres shells, chaque processus dans le pipeline est un enfant de l'invocation
shell (à moins qu'il ne s'agisse d'un shell intégré, auquel cas il s'exécute dans le shell actuel - mais
tout effet qu'il a sur l'environnement est effacé).
Information de Base: Commandes -- &
Si une commande est terminée par l'opérateur de contrôle esperluette (&), le shell exécute le
commande de manière asynchrone - c'est-à-dire que le shell n'attend pas que la commande se termine avant
exécuter la commande suivante.
Le format pour exécuter une commande en arrière-plan est :
commande1 & [commande2 & ...]
Si le shell n'est pas interactif, l'entrée standard d'une commande asynchrone est définie sur
/ dev / null.
Listes -- Généralités Anglais parlé
Une liste est une séquence de zéro ou plusieurs commandes séparées par des sauts de ligne, des points-virgules ou
esperluette, et éventuellement terminé par l'un de ces trois caractères. Les commandes dans un
list sont exécutés dans l'ordre où ils sont écrits. Si la commande est suivie d'une esperluette,
le shell lance la commande et passe immédiatement à la commande suivante ; sinon il
attend la fin de la commande avant de passer à la suivante.
Court-circuit Liste Les opérateurs
"&&" et "||" sont des opérateurs de liste ET-OU. "&&" exécute la première commande, puis exécute
la deuxième commande si l'état de sortie de la première commande est zéro. " || " est similaire, mais
exécute la deuxième commande ssi l'état de sortie de la première commande est différent de zéro. "&&" et
" || " les deux ont la même priorité.
Contrôle de flux Construit -- si, tandis que, pour, maisons
La syntaxe de la commande if est
si liste
puis liste
[ liste elif
puis liste ] ...
[ liste d'autre ]
fi
La syntaxe de la commande while est
tandis que la liste
faire une liste
fait
Les deux listes sont exécutées à plusieurs reprises tandis que l'état de sortie de la première liste est zéro. Les
jusqu'à ce que la commande est similaire, mais a le mot jusqu'à la place de while, ce qui l'amène à
répéter jusqu'à ce que l'état de sortie de la première liste soit zéro.
La syntaxe de la commande for est
pour variable [ dans [ mot ... ] ]
faire une liste
fait
Les mots qui suivent in sont développées, puis la liste est exécutée à plusieurs reprises avec le
variable définie sur chaque mot à tour de rôle. Omettre dans le mot ... équivaut à dans "$@".
La syntaxe de la commande break and continue est
pause [ nombre ]
continuer [ nombre ]
Break termine le nombre de boucles for ou while les plus internes. Continuer continue avec le suivant
itération de la boucle la plus interne. Celles-ci sont implémentées en tant que commandes intégrées.
La syntaxe de la commande case est
mot de cas dans
[(]modèle) liste ;;
...
Esac
Le motif peut en fait être un ou plusieurs motifs (voir coquille Motifs décrit plus loin),
séparés par " | " personnages. Le caractère "(" avant le motif est facultatif.
regroupement Commandes ensemble
Les commandes peuvent être regroupées en écrivant soit
(liste)
or
{ liste; }
Le premier d'entre eux exécute les commandes dans un sous-shell. Commandes intégrées regroupées dans un
(list) n'affectera pas le shell actuel. La deuxième forme ne forme pas une autre coquille, c'est pourquoi
légèrement plus efficace. Regrouper les commandes de cette manière vous permet de rediriger leurs
sortie comme s'il s'agissait d'un seul programme :
{ printf " bonjour " ; printf " monde\n" ; } > salutation
Notez que "}" doit suivre un opérateur de contrôle (ici, ";") pour qu'il soit reconnu comme un
mot réservé et non comme un autre argument de commande.
Les fonctions
La syntaxe d'une définition de fonction est
nom () commande
Une définition de fonction est une instruction exécutable ; lorsqu'il est exécuté, il installe une fonction nommée
name et renvoie un état de sortie de zéro. La commande est normalement une liste comprise entre
"{" et "}".
Les variables peuvent être déclarées locales à une fonction en utilisant une commande locale. Ceci devrait
apparaissent comme la première instruction d'une fonction, et la syntaxe est
locale [variable | -] ...
Local est implémenté en tant que commande intégrée.
Lorsqu'une variable est rendue locale, elle hérite de la valeur initiale et des drapeaux exportés et en lecture seule
de la variable du même nom dans la portée environnante, s'il y en a une. Autrement,
la variable est initialement désactivée. Le shell utilise une portée dynamique, de sorte que si vous effectuez le
variable x locale à la fonction f, qui appelle alors la fonction g, références à la variable x
fait à l'intérieur de g fera référence à la variable x déclarée à l'intérieur de f, pas à la variable globale
nommé x.
Le seul paramètre spécial qui peut être rendu local est « - ». Rendre "-" local n'importe quel shell
les options qui sont modifiées via la commande set à l'intérieur de la fonction à restaurer à leur
valeurs d'origine au retour de la fonction.
La syntaxe de la commande return est
retour [état de sortie]
Il termine la fonction en cours d'exécution. Return est implémenté en tant que commande intégrée.
Variables et Paramètres
Le shell conserve un ensemble de paramètres. Un paramètre désigné par un nom est appelé un
variable. Au démarrage, le shell transforme toutes les variables d'environnement en shell
variables. De nouvelles variables peuvent être définies à l'aide du formulaire
nom=valeur
Les variables définies par l'utilisateur doivent avoir un nom composé uniquement de caractères alphabétiques, numériques et
traits de soulignement - dont le premier ne doit pas être numérique. Un paramètre peut également être désigné par un
numéro ou un caractère spécial comme expliqué ci-dessous.
Positionnel Paramètres
Un paramètre positionnel est un paramètre désigné par un nombre (n > 0). La coquille définit ces
initialement aux valeurs de ses arguments de ligne de commande qui suivent le nom du shell
scénario. Les set Builtin peut également être utilisé pour les définir ou les réinitialiser.
Spécial Paramètres
Un paramètre spécial est un paramètre désigné par l'un des caractères spéciaux suivants. Les
la valeur du paramètre est indiquée à côté de son caractère.
* S'étend aux paramètres de position, à partir d'un. Lorsque l'extension
apparaît dans une chaîne entre guillemets, il se développe en un seul champ avec le
valeur de chaque paramètre séparée par le premier caractère de la variable IFS,
ou par un "espace" si IFS n'est pas défini.
@ S'étend aux paramètres de position, à partir de un. Lorsque l'extension
se produit entre guillemets doubles, chaque paramètre de position se développe comme un
argument. S'il n'y a pas de paramètres de position, le développement de @ génère
zéro argument, même lorsque @ est entre guillemets. Ce que cela signifie essentiellement, pour
par exemple, si $1 est "abc" et $2 est "def ghi", alors "$@" se développe en deux
arguments:
"abc" "def ghi"
# S'étend au nombre de paramètres positionnels.
? Développe jusqu'à l'état de sortie du pipeline le plus récent.
- (trait d'union.) S'étend aux drapeaux d'options actuels (les noms d'options à une lettre
concaténées dans une chaîne) comme spécifié à l'invocation, par le set intégré
commande, ou implicitement par le shell.
$ Se développe jusqu'à l'ID de processus du shell appelé. Un sous-shell conserve le même
valeur de $ en tant que parent.
! S'étend à l'ID de processus de la commande d'arrière-plan la plus récente exécutée à partir de
la coque actuelle. Pour un pipeline, l'ID de processus est celui de la dernière commande
en cours.
0 (Zéro.) Développe le nom du shell ou du script shell.
Word Les expansions
Cet article décrit les divers développements qui sont effectués sur les mots. Pas tout
des expansions sont effectuées sur chaque mot, comme expliqué plus loin.
Développements tilde, développements de paramètres, substitutions de commandes, développements arithmétiques et
les suppressions de guillemets qui se produisent dans un seul mot s'étendent à un seul champ. C'est seulement le champ
le fractionnement ou l'extension du chemin d'accès pouvant créer plusieurs champs à partir d'un seul mot. Les
la seule exception à cette règle est l'expansion du paramètre spécial @ dans le double-
citations, comme cela a été décrit ci-dessus.
L'ordre d'expansion des mots est :
1. Expansion de Tilde, expansion de paramètre, substitution de commande, expansion arithmétique (ces
se produisent tous en même temps).
2. Le fractionnement des champs est effectué sur les champs générés par l'étape (1) sauf si la variable IFS est
zéro.
3. Extension du nom de chemin (sauf si défini -f est en vigueur).
4. Retrait de devis.
Le caractère $ est utilisé pour introduire une extension de paramètre, une substitution de commande ou
évaluation arithmétique.
Tilde Expansion (en remplaçant a utilisateur Accueil annuaire)
Un mot commençant par un caractère tilde sans guillemets (~) est soumis à une expansion tilde. Tous
les caractères jusqu'à une barre oblique (/) ou la fin du mot sont traités comme un nom d'utilisateur et sont
remplacé par le répertoire personnel de l'utilisateur. Si le nom d'utilisateur est manquant (comme dans ~/foobar) et de
tilde est remplacé par la valeur du ACCUEIL variable (le répertoire personnel de l'utilisateur actuel).
Paramètre Expansion
Le format pour l'expansion des paramètres est le suivant :
${expression}
où expression se compose de tous les caractères jusqu'au « } » correspondant. Tout « } » échappé par un
barre oblique inverse ou dans une chaîne entre guillemets, et caractères dans des développements arithmétiques intégrés,
les substitutions de commandes et les extensions de variables ne sont pas examinées pour déterminer la correspondance
"}".
La forme la plus simple pour l'expansion des paramètres est :
${paramètre}
La valeur, le cas échéant, du paramètre est substituée.
Le nom ou le symbole du paramètre peut être placé entre accolades, qui sont facultatives sauf pour
paramètres positionnels avec plus d'un chiffre ou lorsque le paramètre est suivi d'un caractère
qui pourrait être interprété comme faisant partie du nom. Si une expansion de paramètre se produit à l'intérieur
double citation:
1. L'expansion du nom de chemin n'est pas effectuée sur les résultats de l'expansion.
2. La division du champ n'est pas effectuée sur les résultats de l'expansion, à l'exception de
@.
De plus, une extension de paramètre peut être modifiée en utilisant l'un des formats suivants.
${parameter:-word} Utiliser les valeurs par défaut. Si le paramètre est non défini ou nul, le développement de
le mot est substitué ; sinon, la valeur du paramètre est substituée.
${parameter:=word} Attribuer des valeurs par défaut. Si le paramètre est non défini ou nul, l'expansion
de mot est affecté au paramètre. Dans tous les cas, la valeur finale de
paramètre est substitué. Uniquement les variables, pas les paramètres de position
ou des paramètres spéciaux, peuvent être affectés de cette manière.
${parameter:?[word]} Indique une erreur si Null ou Unset. Si le paramètre est non défini ou nul, le
expansion du mot (ou un message indiquant qu'il est désactivé si le mot est
omis) est écrit dans l'erreur standard et le shell se termine avec un
état de sortie différent de zéro. Sinon, la valeur du paramètre est
substitué. Un shell interactif n'a pas besoin de se fermer.
${parameter:+word} Utiliser une valeur alternative. Si le paramètre est non défini ou nul, nul est
substitué ; sinon, l'expansion du mot est substituée.
Dans les développements de paramètres présentés précédemment, l'utilisation des deux points dans le format entraîne un
tester un paramètre non défini ou nul ; l'omission du côlon entraîne un test de
paramètre qui est seulement non défini.
${#parameter} Longueur de chaîne. La longueur en caractères de la valeur du paramètre.
Les quatre variétés suivantes d'extension de paramètres permettent le traitement des sous-chaînes. Dans
chaque cas, notation de correspondance de modèle (voir coquille Motifs), plutôt qu'une expression régulière
notation, est utilisé pour évaluer les modèles. Si le paramètre est * ou @, le résultat du
l'expansion n'est pas spécifiée. Encadrer la chaîne d'extension de paramètre complète entre guillemets doubles
ne provoque pas la citation des quatre variétés suivantes de caractères de motif, alors que
la citation des caractères entre les accolades a cet effet.
${parameter%word} Supprimer le motif de suffixe le plus petit. Le mot est élargi pour produire un
modèle. L'expansion du paramètre se traduit alors par le paramètre, avec le
plus petite partie du suffixe correspondant au motif supprimé.
${parameter%%word} Supprimer le plus grand motif de suffixe. Le mot est élargi pour produire un
modèle. L'expansion du paramètre se traduit alors par le paramètre, avec le
la plus grande partie du suffixe correspondant au motif supprimé.
${parameter#word} Supprimer le plus petit motif de préfixe. Le mot est élargi pour produire un
modèle. L'expansion du paramètre se traduit alors par le paramètre, avec le
plus petite partie du préfixe correspondant au motif supprimé.
${parameter##word} Supprimer le plus grand motif de préfixe. Le mot est élargi pour produire un
modèle. L'expansion du paramètre se traduit alors par le paramètre, avec le
la plus grande partie du préfixe correspondant au motif supprimé.
Command Substitution
La substitution de commande permet de substituer la sortie d'une commande à la
le nom de la commande lui-même. La substitution de commande se produit lorsque la commande est entourée comme suit :
$(commande)
ou (version « backquoted ») :
`commande`
Le shell étend la substitution de commande en exécutant la commande dans un environnement de sous-shell
et en remplaçant la substitution de commande par la sortie standard de la commande, en supprimant
des séquences d'un ou plusieurs « sauts de ligne » à la fin de la substitution. (nouvelles lignes intégrées
avant la fin de la sortie ne sont pas supprimés ; cependant, lors de la division du champ, ils peuvent être
traduit en « espace », en fonction de la valeur de IFS et de la citation en vigueur.)
Arithmétique Expansion
L'expansion arithmétique fournit un mécanisme pour évaluer une expression arithmétique et
substituer sa valeur. Le format du développement arithmétique est le suivant :
$((expression))
L'expression est traitée comme si elle était entre guillemets, sauf qu'un guillemet double à l'intérieur
l'expression n'est pas traitée spécialement. Le shell développe tous les jetons dans l'expression pour
l'expansion des paramètres, la substitution de commandes et la suppression des guillemets.
Ensuite, le shell traite cela comme une expression arithmétique et substitue la valeur de la
expression.
Blanc espace Scission (Domaine Scission)
Après l'expansion des paramètres, la substitution de commandes et l'expansion arithmétique, le shell analyse
les résultats des expansions et des substitutions qui ne se sont pas produites entre guillemets doubles pour le champ
le fractionnement et plusieurs champs peuvent en résulter.
Le shell traite chaque caractère de l'IFS comme un délimiteur et utilise les délimiteurs pour diviser
les résultats de l'expansion des paramètres et de la substitution de commandes dans les champs.
Chemin d'accès Expansion (Déposer Nom Génération)
Sauf si -f l'indicateur est défini, la génération du nom de fichier est effectuée après le fractionnement des mots
Achevée. Chaque mot est considéré comme une série de motifs, séparés par des barres obliques. Le processus
d'expansion remplace le mot par les noms de tous les fichiers existants dont les noms peuvent être
formé en remplaçant chaque motif par une chaîne qui correspond au motif spécifié. Là
y a deux restrictions à ce sujet : premièrement, un motif ne peut pas correspondre à une chaîne contenant une barre oblique, et
deuxièmement, un motif ne peut pas correspondre à une chaîne commençant par un point à moins que le premier caractère de
le modèle est une période. La section suivante décrit les modèles utilisés à la fois pour le nom de chemin
L'expansion et le maisons commander.
coquille Motifs
Un modèle se compose de caractères normaux, qui se correspondent, et de méta-caractères. Les
les méta-caractères sont "!", "*", "?" et "[". Ces caractères perdent leur signification particulière si
ils sont cités. Lorsqu'une commande ou une substitution de variable est effectuée et que le signe dollar ou
les guillemets arrière ne sont pas entre guillemets, la valeur de la variable ou la sortie de la commande est
scannés pour ces caractères et ils sont transformés en méta-caractères.
Un astérisque ("*") correspond à n'importe quelle chaîne de caractères. Un point d'interrogation correspond à n'importe quel
personnage. Un crochet gauche ("[") introduit une classe de caractères. La fin du personnage
la classe est indiquée par un («]»); si le « ] » est manquant, le « [ » correspond à un « [ » plutôt que
introduire une classe de caractères. Une classe de caractères correspond à l'un des caractères entre le
crochets. Une plage de caractères peut être spécifiée à l'aide d'un signe moins. Le personnage
classe peut être complétée en faisant d'un point d'exclamation le premier caractère de la
classe de caractères.
Pour inclure un "]" dans une classe de caractères, faites-en le premier caractère répertorié (après le "!", si
tout). Pour inclure un signe moins, faites-en le premier ou le dernier caractère répertorié.
Intégrés
Cette section répertorie les commandes intégrées qui sont intégrées car elles doivent effectuer certaines
opération qui ne peut pas être effectuée par un processus séparé. En plus de ceux-ci, il y a
plusieurs autres commandes qui peuvent être intégrées pour plus d'efficacité (par exemple printf(1), echo(1),
tester(1), etc.).
:
true Une commande null qui renvoie une valeur de sortie 0 (vrai).
. déposer
Les commandes du fichier spécifié sont lues et exécutées par le shell.
pseudo [nom[=chaîne ...]]
If nom=chaîne est spécifié, le shell définit l'alias nom avec valeur string. Si
juste nom est spécifié, la valeur de l'alias nom est imprimé. Sans arguments,
le alias Builtin imprime les noms et les valeurs de tous les alias définis (voir Unalias).
bg [JOB] ...
Continuer les travaux spécifiés (ou le travail en cours si aucun travail n'est donné) dans le
fond.
commande [-p] [-v] [-V] commander [arg ...]
Exécute la commande spécifiée mais ignore les fonctions du shell lors de sa recherche.
(Ceci est utile lorsque vous avez une fonction shell avec le même nom qu'une fonction intégrée
commander.)
-p rechercher la commande en utilisant un PATH qui garantit de trouver tous les standards
utilitaires.
-V N'exécutez pas la commande mais recherchez la commande et imprimez la résolution
de la commande de recherche. C'est le même que le type builtin.
-v N'exécutez pas la commande mais recherchez la commande et imprimez l'absolu
chemin d'accès des utilitaires, le nom des fonctions intégrées ou l'expansion des alias.
cd -
CD [-PL] [annuaire]
Basculez vers le répertoire spécifié (par défaut HOME). Si une entrée pour CDPATH apparaît dans
l'environnement de la cd commande ou la variable shell CDPATH est définie et le
le nom du répertoire ne commence pas par une barre oblique, puis les répertoires répertoriés dans CDPATH
sera recherché pour le répertoire spécifié. Le format de CDPATH est le même que
celui de CHEMIN. Si un seul tiret est spécifié comme argument, il sera remplacé par
la valeur de OLDPWD. Les cd La commande affichera le nom du répertoire qu'elle
réellement passé à s'il est différent du nom que l'utilisateur a donné. Ces
peut être différent soit parce que le mécanisme CDPATH a été utilisé, soit parce que l'argument
est un seul tiret. Les -P l'option provoque l'utilisation de la structure physique du répertoire,
c'est-à-dire que tous les liens symboliques sont résolus à leurs valeurs respectives. Les -L option
désactive l'effet de tout précédent -P options.
écho [-n] arguments...
Affiche les arguments sur la sortie standard, séparés par des espaces. À moins que le -n
est présente, une nouvelle ligne est affichée après les arguments.
Si l'une des séquences de caractères suivantes est rencontrée lors de la sortie, le
la séquence n'est pas sortie. Au lieu de cela, l'action spécifiée est effectuée :
\b Un caractère de retour arrière est généré.
\c La sortie suivante est supprimée. Ceci est normalement utilisé à la fin de la
dernier argument pour supprimer la nouvelle ligne de fin qui echo serait autrement
sortie.
\f Sortir un saut de page.
\n Affiche un caractère de nouvelle ligne.
\r Affiche un retour chariot.
\t Affiche un caractère de tabulation (horizontal).
\v Affiche une tabulation verticale.
\0chiffres
Affiche le caractère dont la valeur est donnée par zéro à trois chiffres octaux. Si
il y a zéro chiffres, un caractère nul est sorti.
\\ Affiche une barre oblique inverse.
Toutes les autres séquences de barres obliques inverses provoquent un comportement indéfini.
eval string ...
Concaténez tous les arguments avec des espaces. Ensuite, analysez à nouveau et exécutez la commande.
exe [commander arg ...]
À moins que la commande ne soit omise, le processus shell est remplacé par le programme spécifié
(qui doit être un vrai programme, pas un shell intégré ou une fonction). Toute redirection sur
le exec commande sont marqués comme permanents, afin qu'ils ne soient pas annulés lorsque le exec
la commande se termine.
sortir [état de sortie]
Terminez le processus shell. Si état de sortie est donné, il est utilisé comme état de sortie de
La coquille; sinon, l'état de sortie de la commande précédente est utilisé.
Exporter nom ...
Exporter -p
Les noms spécifiés sont exportés afin qu'ils apparaissent dans l'environnement de
commandes suivantes. La seule façon de désexporter une variable est de la désarmer. La coquille
permet de définir la valeur d'une variable en même temps qu'elle est exportée par écriture
nom d'exportation=valeur
Sans arguments, la commande export répertorie les noms de toutes les variables exportées. Avec
le -p option spécifiée la sortie sera formatée de manière appropriée pour non-interactif
utiliser.
FC [-e éditeur] [premier [dernier]]
fc -l [-n°] [premier [dernier]]
fc -s [ancien=nouveau] [premier]
L'exposition fc listes intégrées, ou édite et réexécute, les commandes précédemment entrées dans un
coquille interactive.
-e éditeur
Utilisez l'éditeur nommé par editor pour éditer les commandes. La chaîne de l'éditeur est un
nom de la commande, sujet à la recherche via la variable PATH. La valeur dans le
La variable FCEDIT est utilisée par défaut lorsque -e n'est pas spécifié. Si FCEDIT est
null ou non défini, la valeur de la variable EDITOR est utilisée. Si EDITOR est nul ou
désarmé, ed(1) est utilisé comme éditeur.
-l (aune)
Répertoriez les commandes plutôt que d'appeler un éditeur dessus. Les commandes sont
écrit dans l'ordre indiqué par le premier et le dernier opérande, comme affecté
by -r, avec chaque commande précédée du numéro de commande.
-n Supprimer les numéros de commande lors de la liste avec -l.
-r Inversez l'ordre des commandes listées (avec -l) ou édité (sans -l
ni -s).
-s Réexécutez la commande sans appeler un éditeur.
premier
last Sélectionnez les commandes à lister ou à modifier. Le nombre de commandes précédentes qui peuvent
accessibles sont déterminés par la valeur de la variable HITSIZE. La valeur
du premier ou du dernier ou des deux sont l'un des suivants :
[+]nombre
Un nombre positif représentant un numéro de commande ; les numéros de commande peuvent être
affiché avec le -l option.
-nombre
Un nombre décimal négatif représentant la commande qui a été exécutée
nombre de commandes précédemment. Par exemple, -1 est le immédiatement
commande précédente.
string
Une chaîne indiquant la dernière commande entrée qui commence par cette
chaîne de caractères. Si l'opérande ancien=nouveau n'est pas également spécifié avec -s, la forme de chaîne
du premier opérande ne peut pas contenir de signe égal incorporé.
Les variables d'environnement suivantes affectent l'exécution de fc :
FCEDIT Nom de l'éditeur à utiliser.
HITSIZE Le nombre de commandes précédentes qui sont accessibles.
fg [JOB]
Déplace le travail spécifié ou le travail en cours au premier plan.
getops chaîne d'options var
Le POSIX getops commande, à ne pas confondre avec la Bell Laboratoires -dérivé obtenir (1).
Le premier argument doit être une série de lettres, chacune pouvant être facultativement
suivi de deux points pour indiquer que l'option nécessite un argument. La variable
spécifié est défini sur l'option analysée.
L'exposition getops la commande désapprouve l'ancienne obtenir(1) utilité en raison de sa gestion de
arguments contenant des espaces.
L'exposition getops Builtin peut être utilisé pour obtenir des options et leurs arguments à partir d'une liste de
paramètres. Lorsqu'il est invoqué, getops place la valeur de l'option suivante du
chaîne d'option dans la liste de la variable shell spécifiée par var et son indice dans le
variable shell OPTIND. Lorsque le shell est invoqué, OPTIND est initialisé à 1. Pour
chaque option qui nécessite un argument, le getops Builtin le placera dans le shell
variable OPTARG. Si une option n'est pas autorisée dans le chaîne d'options, alors OPTARG
être désarmé.
chaîne d'options est une chaîne de lettres d'option reconnues (voir obtenir(3)). Si une lettre est
suivi de deux points, l'option doit avoir un argument qui peut ou non
en être séparé par un espace blanc. Si un caractère d'option n'est pas trouvé où
prévu, getops définira la variable var à un « ? » ; getops désactive alors OPTARG
et écrire la sortie sur l'erreur standard. En spécifiant deux points comme premier caractère de
chaîne d'options toutes les erreurs seront ignorées.
Une valeur différente de zéro est renvoyée lorsque la dernière option est atteinte. S'il n'y a pas
arguments restants, getops va définir var à l'option spéciale, "--", sinon, il
va définir var à "?".
Le fragment de code suivant montre comment traiter les arguments d'une commande
qui peut prendre les options [a] et [b], et l'option [c], qui nécessite une
argument.
tandis que getopts abc: f
do
cas $f dans
un | b) indicateur=$f;;
c) carg=$OPTARG;;
\?) echo $USAGE; sortie 1;;
Esac
fait
décalage `expr $OPTIND - 1`
Ce code acceptera l'un des éléments suivants comme équivalent :
cmd -acarg fichier fichier
cmd -a -c arg fichier fichier
cmd -carg -a fichier fichier
cmd -a -carg -- fichier fichier
hachage -rv commander ...
Le shell maintient une table de hachage qui mémorise les emplacements des commandes. Sans
arguments que ce soit, le hachage La commande imprime le contenu de cette table.
Les entrées qui n'ont pas été consultées depuis la dernière cd commande sont marqués d'un
astérisque; il est possible que ces entrées soient invalides.
Avec des arguments, le hachage commande supprime les commandes spécifiées de la table de hachage
(sauf s'il s'agit de fonctions), puis les localise. Avec le -v option, empreintes de hachage
les emplacements des commandes au fur et à mesure qu'il les trouve. Les -r l'option provoque le hachage
commande pour supprimer toutes les entrées de la table de hachage, à l'exception des fonctions.
psd [-PL]
La commande intégrée se souvient du répertoire actuel plutôt que de le recalculer
chaque fois. Cela le rend plus rapide. Cependant, si le répertoire courant est renommé, le
version intégrée de pwd continuera à imprimer l'ancien nom du répertoire. Les -P
L'option provoque l'affichage de la valeur physique du répertoire de travail courant, que
c'est-à-dire que tous les liens symboliques sont résolus à leurs valeurs respectives. Les -L l'option tourne
hors de l'effet de tout précédent -P options.
lire [-p prompt ] [-r] variable [...]
L'invite est imprimée si le -p est spécifiée et l'entrée standard est un
Terminal. Ensuite, une ligne est lue à partir de l'entrée standard. La nouvelle ligne de fin est
supprimé de la ligne et la ligne est divisée comme décrit dans la section sur le mot
ci-dessus, et les pièces sont affectées aux variables dans l'ordre. Au moins un
variable doit être spécifiée. S'il y a plus de pièces que de variables, le reste
pièces (ainsi que les caractères de l'IFS qui les séparent) sont affectées au
dernière variable. S'il y a plus de variables que de pièces, les variables restantes sont
attribué la chaîne nulle. Les lire intégré indiquera le succès à moins que EOF ne soit
rencontré en entrée, auquel cas l'échec est renvoyé.
Par défaut, à moins que le -r option est spécifiée, la barre oblique inverse "\" agit comme un échappement
caractère, ce qui fait que le caractère suivant est traité littéralement. Si une barre oblique inverse
est suivi d'une nouvelle ligne, la barre oblique inverse et la nouvelle ligne seront supprimées.
lecture seulement nom ...
lecture seulement -p
Les noms spécifiés sont marqués comme en lecture seule, de sorte qu'ils ne peuvent pas être ultérieurement
modifié ou non défini. Le shell permet de définir la valeur d'une variable en même temps
moment où il est marqué en lecture seule par écriture
nom en lecture seule=valeur
Sans arguments, la commande readonly répertorie les noms de toutes les variables en lecture seule.
Avec la collection -p option spécifiée, la sortie sera formatée de manière appropriée pour les non-
utilisation interactive.
printf le format [arguments ...]
printf formate et imprime ses arguments, après le premier, sous le contrôle du
le formatL’ le format est une chaîne de caractères qui contient trois types d'objets :
caractères simples, qui sont simplement copiés sur la sortie standard, caractère d'échappement
séquences qui sont converties et copiées sur la sortie standard, et format
spécifications, dont chacune provoque l'impression de la prochaine argument.
L'exposition arguments après le premier sont traités comme des chaînes si le format correspondant est
non plus b, c or s; sinon, il est évalué comme une constante C, avec le suivant
rallonges :
· Un signe plus ou moins en tête est autorisé.
· Si le premier caractère est un guillemet simple ou double, la valeur est le
Code ASCII du caractère suivant.
La chaîne de format est réutilisée aussi souvent que nécessaire pour satisfaire les arguments. Tout
les spécifications de format supplémentaires sont évaluées avec zéro ou la chaîne nulle.
Les séquences d'échappement de caractères sont en notation antislash telle que définie dans ANSI X3.159-1989
(« ANSI C89 »). Les caractères et leurs significations sont les suivants :
\a Écrire un personnage.
\b Écrire un personnage.
\f Écrire un personnage.
\n Écrire un personnage.
\r Écrire un personnage.
\t Écrire un personnage.
\v Écrire un personnage.
\\ Écrivez une barre oblique inverse.
\num Écrivez un caractère 8 bits dont la valeur ASCII est à 1, 2 ou 3 chiffres
nombre octal num.
Chaque spécification de format est introduite par le caractère de pourcentage (``%''). Les
le reste de la spécification de format comprend, dans l'ordre suivant :
Zéro ou plusieurs des indicateurs suivants :
# Un caractère `#' spécifiant que la valeur doit être imprimée dans un
« forme alternative ». Pour b, c, det s formats, cette option n'a pas
effet. Pour le o format la précision du nombre est augmentée à
force le premier caractère de la chaîne de sortie à zéro. Pour le x
(X), un résultat différent de zéro est précédé de la chaîne 0x (0X).
Pour e, E, f, get G formats, le résultat contiendra toujours un
virgule décimale, même si aucun chiffre ne suit la virgule (normalement, un
le point décimal n'apparaît dans les résultats de ces formats que si un chiffre
suit la virgule décimale). Pour g et G formats, les zéros à droite sont
pas supprimés du résultat comme ils le seraient autrement.
- Un signe moins « - » qui spécifie à gauche le réglage de la sortie dans le
champ indiqué;
+ Un caractère '+' spécifiant qu'il doit toujours y avoir un signe placé
avant le numéro lors de l'utilisation de formats signés.
' ' Un espace spécifiant qu'un blanc doit être laissé avant un positif
numéro pour un format signé. Un `+' remplace un espace si les deux sont
utilisé;
0 Un caractère zéro « 0 » indiquant que le remplissage par des zéros doit être utilisé
plutôt qu'un remplissage en blanc. Un « - » remplace un « 0 » si les deux sont utilisés ;
Largeur du champ :
Une chaîne de chiffres facultative spécifiant un champ largeur; si la chaîne de sortie a
moins de caractères que la largeur du champ, il sera rempli de blancs à gauche (ou
droite, si l'indicateur de réglage à gauche a été donné) pour composer le champ
largeur (notez qu'un zéro non significatif est un indicateur, mais un zéro incorporé fait partie d'un
largeur du champ);
Précision:
Une période facultative, '.', suivi d'une chaîne de chiffres facultative donnant un
précision qui spécifie le nombre de chiffres à apparaître après la virgule
pointe, pour e et f formats, ou le nombre maximum d'octets à imprimer à partir de
un string (b et s formats) ; si la chaîne de chiffres est manquante, la précision est
traité comme zéro ;
Format:
Un caractère qui indique le type de format à utiliser (un des
diouxXfwEgGbcs).
Une largeur ou une précision de champ peut être '*' au lieu d'une chaîne de chiffres. Dans ce cas un
argument fournit la largeur ou la précision du champ.
Les caractères de format et leurs significations sont :
diouXx L'exposition argument est imprimé sous la forme d'un décimal signé (d ou i), d'un octal non signé,
décimal non signé ou hexadécimal non signé (X ou x), respectivement.
f L'exposition argument est imprimé dans le style [-]ddd.ddd où le nombre de d
après la virgule est égal à la spécification de précision pour le
argument. Si la précision manque, 6 chiffres sont donnés ; si la
la précision est explicitement 0, aucun chiffre ni point décimal n'est imprimé.
eE L'exposition argument est imprimé dans le style [-]d.ddde±dd où il y en a un
chiffre avant la virgule et le nombre après est égal au
spécification de précision pour l'argument ; quand la précision manque,
6 chiffres sont produits. Un E majuscule est utilisé pour un format "E".
gG L'exposition argument est imprimé avec style f ou dans le style e (E) celui qui donne plein
précision dans un minimum d'espace.
b Caractères de la chaîne argument sont imprimés avec une barre oblique inverse
séquences étendues.
Les séquences d'échappement supplémentaires suivantes sont prises en charge :
\c Causes tiret pour ignorer tous les caractères restants dans la chaîne
l'opérande le contenant, tous les opérandes de chaîne restants et tout
caractères supplémentaires dans l'opérande de format.
\0num Écrivez un caractère de 8 bits dont la valeur ASCII est le 1, 2 ou
nombre octal à 3 chiffres num.
c Le premier personnage de argument est imprimé.
s Caractères de la chaîne argument sont imprimés jusqu'à la fin
ou jusqu'à ce que le nombre d'octets indiqué par la spécification de précision soit
parvenu; si la précision est omise, tous les caractères de la chaîne sont
imprimé.
% Imprimer un « % » ; aucun argument n'est utilisé.
En aucun cas une largeur de champ inexistante ou faible ne provoque la troncature d'un champ ;
le remplissage n'a lieu que si la largeur de champ spécifiée dépasse la largeur réelle.
ensemble [{ -options | +options | -- }] arg ...
L'exposition set commande remplit trois fonctions différentes.
Sans arguments, il répertorie les valeurs de toutes les variables shell.
Si des options sont données, il définit les indicateurs d'option spécifiés ou les efface comme décrit
dans la section intitulée Argument Liste Gestion. Comme cas particulier, si l'option est
-o ou +o et aucun argument n'est fourni, le shell affiche les paramètres de tous ses
option. Si l'option est -o, les paramètres sont imprimés dans un format lisible par l'homme ;
si l'option est +o, les paramètres sont imprimés dans un format adapté à une re-saisie dans le
shell pour affecter les mêmes paramètres d'option.
La troisième utilisation de la commande set est de définir les valeurs de la position du shell
paramètres aux arguments spécifiés. Pour modifier les paramètres de position sans
modifier les options, utilisez "--" comme premier argument à définir. Si aucun argument n'est présent,
la commande set effacera tous les paramètres de position (équivalent à exécuter
"décaler $#".)
décalage [n]
Décalez les paramètres de position n fois. UNE décalage fixe la valeur de $1 à la valeur
of $2, la valeur de $2 à la valeur de $3, et ainsi de suite, en diminuant la valeur de $# by
une. Si n est supérieur au nombre de paramètres positionnels, décalage publiera un
message d'erreur et quitter avec le statut de retour 2.
tester expression
[ expression ]
L'exposition tester l'utilitaire évalue l'expression et, s'il est vrai, renvoie un
zéro (vrai) état de sortie ; sinon il renvoie 1 (faux). S'il n'y a pas d'expression,
le test renvoie également 1 (faux).
Tous les opérateurs et indicateurs sont des arguments séparés pour le tester utilitaire.
Les primaires suivantes sont utilisées pour construire l'expression :
-b filet Vrai si filet existe et est un fichier spécial de bloc.
-c filet Vrai si filet existe et est un fichier spécial de caractères.
-d filet Vrai si filet existe et est un répertoire.
-e filet Vrai si filet existe (quel que soit le type).
-f filet Vrai si filet existe et est un fichier régulier.
-g filet Vrai si filet existe et son indicateur d'ID de groupe défini est défini.
-h filet Vrai si filet existe et est un lien symbolique.
-k filet Vrai si filet existe et son bit collant est défini.
-n string Vrai si la longueur de string est non nul.
-p filet Vrai si filet est un tube nommé (FIFO).
-r filet Vrai si filet existe et est lisible.
-s filet Vrai si filet existe et a une taille supérieure à zéro.
-t descripteur_de_fichier
Vrai si le fichier dont le numéro de descripteur de fichier est descripteur_de_fichier is
ouvert et est associé à un terminal.
-u filet Vrai si filet existe et son indicateur d'ID utilisateur défini est défini.
-w filet Vrai si filet existe et est accessible en écriture. Vrai indique seulement que le
l'indicateur d'écriture est activé. Le fichier n'est pas accessible en écriture sur un système de fichiers en lecture seule
même si ce test indique vrai.
-x filet Vrai si filet existe et est exécutable. Vrai indique seulement que le
l'indicateur d'exécution est activé. Si filet est un répertoire, true indique que filet
peut être recherché.
-z string Vrai si la longueur de string est zéro.
-L filet Vrai si filet existe et est un lien symbolique. Cet opérateur est retenu
pour la compatibilité avec les versions précédentes de ce programme. Ne comptez pas
sur son existence ; utilisation -h à la place.
-O filet Vrai si filet existe et son propriétaire correspond à l'ID utilisateur effectif de ce
processus.
-G filet Vrai si filet existe et son groupe correspond à l'ID de groupe effectif de
ce processus.
-S filet Vrai si filet existe et est une socket.
file1 -NT file2
Vrai si file1 et file2 exister et file1 est plus récent que file2.
file1 -pas file2
Vrai si file1 et file2 exister et file1 est plus vieux que file2.
file1 -si file2
Vrai si file1 et file2 existent et font référence au même fichier.
string Vrai si string n'est pas la chaîne nulle.
s1 = s2 Vrai si les chaînes s1 et s2 sont identiques.
s1 != s2 Vrai si les chaînes s1 et s2 ne sont pas identiques.
s1 < s2 Vrai si chaîne s1 vient avant s2 sur la base de la valeur ASCII de leur
caractères.
s1 > s2 Vrai si chaîne s1 vient après s2 sur la base de la valeur ASCII de leur
caractères.
n1 -eq n2 Vrai si les entiers n1 et n2 sont algébriquement égaux.
n1 -Ne n2 Vrai si les entiers n1 et n2 ne sont pas algébriquement égaux.
n1 -Gt n2 Vrai si l'entier n1 est algébriquement plus grand que l'entier n2.
n1 -donner n2 Vrai si l'entier n1 est algébriquement supérieur ou égal à
int n2.
n1 -lt n2 Vrai si l'entier n1 est algébriquement inférieur à l'entier n2.
n1 -Le n2 Vrai si l'entier n1 est algébriquement inférieur ou égal à
int n2.
Ces primaires peuvent être combinés avec les opérateurs suivants :
! expression Vrai si expression c'est faux.
expression1 -a expression2
Vrai si les deux expression1 et expression2 sont vrai.
expression1 -o expression2
Vrai si soit expression1 or expression2 sont vrai.
(expression) Vrai si l'expression est vraie.
L'exposition -a l'opérateur a une priorité plus élevée que l'opérateur -o .
times Affiche les heures utilisateur et système accumulées pour le shell et pour les processus exécutés à partir de
La coquille. Le statut de retour est 0.
piéger [action signal ...]
Faire en sorte que le shell analyse et exécute une action lorsque l'un des signaux spécifiés est
a reçu. Les signaux sont spécifiés par numéro de signal ou comme nom du signal.
If signal est 0 ou EXIT, l'action est exécutée lorsque le shell se termine. action peut être
vide (''), ce qui fait que les signaux spécifiés sont ignorés. Avec action omis ou
mis à « - », les signaux spécifiés sont définis sur leur action par défaut. Quand la coquille
bifurque un sous-shell, il réinitialise les signaux piégés (mais non ignorés) à la valeur par défaut
action. Les piège commande n'a aucun effet sur les signaux qui ont été ignorés à l'entrée du
coquille. piège sans aucun argument, il écrira une liste de signaux et leurs
action associée à la sortie standard dans un format qui convient comme entrée pour
la coquille qui obtient les mêmes résultats de piégeage.
Exemples :
piège
Lister les signaux piégés et leur action correspondante
piège '' INT QUIT tstp 30
Ignorer les signaux INT QUIT TSTP USR1
date d'interception INT
Imprimer la date à la réception du signal INT
taper [nom ...]
Interprétez chaque nom comme une commande et imprimez la résolution de la recherche de commande.
Les résolutions possibles sont : mot-clé shell, alias, shell intégré, commande, alias suivi
et introuvable. Pour les alias, l'extension d'alias est imprimée ; pour les commandes et suivi
alias le chemin complet de la commande est affiché.
ulimiter [-H | -S] [-a | -tfdscmlpn [valeur]]
Renseignez-vous sur ou définissez les limites strictes ou souples des processus ou définissez de nouvelles limites. Les
choix entre une limite stricte (qu'aucun processus n'est autorisé à violer, et qui peut ne pas
être augmenté une fois qu'il a été abaissé) et la limite douce (qui provoque des processus d'être
signalée mais pas nécessairement tuée, et qui peut être soulevée) est faite avec ces
drapeaux :
-H définir ou se renseigner sur les limites strictes
-S définir ou se renseigner sur les limites souples. Si ni l'un ni l'autre -H ni -S est spécifié, le
la limite logicielle est affichée ou les deux limites sont définies. Si les deux sont spécifiés,
le dernier gagne.
La limite à interroger ou à fixer, alors, est choisie en spécifiant l'un de ces
drapeaux :
-a afficher toutes les limites actuelles
-t afficher ou définir la limite du temps CPU (en secondes)
-f afficher ou définir la limite du plus gros fichier pouvant être créé (en
blocs de 512 octets)
-d afficher ou définir la limite de la taille du segment de données d'un processus (en
kilo-octets)
-s afficher ou définir la limite de la taille de la pile d'un processus (en kilo-octets)
-c afficher ou définir la limite de la plus grande taille de vidage de mémoire pouvant être produite
(en blocs de 512 octets)
-m afficher ou définir la limite de la mémoire physique totale pouvant être utilisée par
un processus (en kilo-octets)
-l afficher ou définir la limite de la quantité de mémoire qu'un processus peut verrouiller avec mlock(2)
(en kilo-octets)
-p afficher ou définir la limite du nombre de processus que cet utilisateur peut avoir à
une fois
-n afficher ou définir la limite du nombre de fichiers qu'un processus peut ouvrir à la fois
-r afficher ou définir la limite de la priorité de planification en temps réel d'un processus
Si aucun de ces éléments n'est spécifié, c'est la limite de taille de fichier qui est affichée ou définie. Si
valeur est spécifiée, la limite est fixée à ce nombre ; sinon la limite actuelle est
affiché.
Les limites d'un processus arbitraire peuvent être affichées ou définies à l'aide de la système(8) utilitaire.
umask [masque]
Définissez la valeur de umask (voir umask(2)) à la valeur octale spécifiée. Si l'argument
est omis, la valeur umask est imprimée.
unalias [-a] [nom]
If nom est spécifié, le shell supprime cet alias. Si -a est spécifié, tous les alias
sont enlevés.
désarmé [-fv] nom ...
Les variables et fonctions spécifiées ne sont ni définies ni exportées. Si -f or -v is
spécifié, la fonction ou la variable correspondante n'est pas définie, respectivement. Si une donnée
nom correspond à la fois à une variable et à une fonction, et aucune option n'est donnée, seulement
la variable n'est pas définie.
attendre [JOB]
Attendez la fin du travail spécifié et retournez l'état de sortie du dernier processus
dans le travail. Si l'argument est omis, attendez que tous les travaux se terminent et retournez un
état de sortie de zéro.
Command Line Le Montage
Quand tiret est utilisé de manière interactive depuis un terminal, la commande en cours et la commande
histoire (voir fc in Intégrés) peut être modifié à l'aide de l'édition de ligne de commande en mode vi. Ce mode
utilise des commandes, décrites ci-dessous, similaires à un sous-ensemble de celles décrites dans la page de manuel vi.
La commande 'set -o vi' active l'édition en mode vi et place sh en mode d'insertion vi. Avec vi-
mode activé, sh peut être basculé entre le mode insertion et le mode commande. L'éditeur n'est pas
décrit en entier ici, mais le sera dans un document ultérieur. C'est similaire à vi : en tapant ESC⟩
vous jettera dans le mode de commande de commande VI. Appuyez sur « retour » en mode commande pour
passer la ligne au shell.
EXIT STATUT
Les erreurs détectées par le shell, telles qu'une erreur de syntaxe, entraîneront la fermeture du shell
avec un statut de sortie différent de zéro. Si le shell n'est pas un shell interactif, l'exécution du
shell sera abandonné. Sinon, le shell renverra l'état de sortie du dernier
commande exécutée, ou si la commande intégrée exit est utilisée avec un argument numérique, elle renverra le
argument.
ENVIRONNEMENT
HOME Réglé automatiquement par vous connecter(1) depuis le répertoire de connexion de l'utilisateur dans le mot de passe
déposer (passwd(4)). Cette variable d'environnement fonctionne également comme valeur par défaut
argument pour le cd intégré.
PATH Le chemin de recherche par défaut des exécutables. Voir la section ci-dessus Chemin Rechercher.
CDPATH Le chemin de recherche utilisé avec le cd intégré.
MAIL Le nom d'un fichier courrier, qui sera vérifié pour l'arrivée de nouveau courrier.
Remplacé par MAILPATH.
MAILCHECK La fréquence en secondes à laquelle le shell vérifie l'arrivée de courrier dans le
fichiers spécifiés par MAILPATH ou le fichier MAIL. S'il est défini sur 0, le contrôle sera
se produisent à chaque invite.
MAILPATH Une liste de noms de fichiers séparés par deux points " :", pour que le shell vérifie les entrées
courrier. Ce paramètre d'environnement remplace le paramètre MAIL. il y a un maximum
de 10 boîtes aux lettres qui peuvent être surveillées à la fois.
PS1 La chaîne d'invite principale, qui est par défaut « $ », sauf si vous êtes le superutilisateur,
auquel cas la valeur par défaut est « # ».
PS2 La chaîne d'invite secondaire, qui est par défaut « > ».
Sortie PS4 avant chaque ligne lorsque la trace d'exécution (set -x) est activée, la valeur par défaut est
"+".
Séparateurs de champs d'entrée IFS. Ceci est normalement défini sur « espace », « tabulation » et « nouvelle ligne ».
Voir le Blanc espace Scission section pour plus de détails.
TERM Le paramètre de terminal par défaut pour le shell. Ceci est hérité par les enfants de la
shell et est utilisé dans les modes d'édition de l'historique.
HITSIZE Le nombre de lignes dans le tampon d'historique pour le shell.
PWD La valeur logique du répertoire de travail courant. Ceci est fixé par le cd
commander.
OLDPWD La valeur logique précédente du répertoire de travail actuel. Ceci est fixé par le
cd commander.
PPID L'ID de processus du processus parent du shell.
Utilisez ash en ligne en utilisant les services onworks.net
