Section courante

A propos

Section administrative du site

Généralité, grammaire et sémantique

Tout programme écrit en C shell ou csh réagit selon certaines règles bien précises. Il très important de connaître ses règles afin d'assurer la stabilité des programmes que vous allez écrire.

Notation

Nom Description
stdin Cette notation permet d'indiquer l'entrée standard.
stdout Cette notation permet d'indiquer la sortie standard.
strerr Cette notation permet d'indiquer la sortie standard des erreurs.
str, str1, str2 Ces notations permettent d'indiquer les chaînes de caractères.
cmd Cette notation permet d'indiquer une commande ou un groupe de commande.
var Cette notation permet d'indiquer une variable d'interpréteur de commande.
expr Cette notation permet d'indiquer une expression.

Caractères spéciaux pour émettre des commandes

Nom Description
: Ce caractère spécial permet de séparé des commandes.
( et ) Ces caractères spéciaux permettent d'indiquer un groupe de commandes.
| Ce caractère spécial permet d'indiquer un tuyau vers stdout et stdin.
|& Ce caractère spécial permet d'indiquer un tuyau de stderr et stdout vers stdin.
&& Ce caractère spécial permet d'exécuter la commande suivante que si la précédente a réussi.
|| Ce caractère spécial permet d'exécuter la commande suivante que si la précédente a échoué.
& Ce caractère spécial permet d'exécuter la commande en arrière-plan.

Redirection d'entrée/sortie

Nom Description
< Ce caractère permet d'indiquer une redirection vers le stdin.
> Ce caractère permet d'indiquer une redirection vers le stdout.
>& Ce caractère permet d'indiquer une redirection vers le stdout et stderr.
>! Ce caractère permet d'indiquer une redirection vers stdout (remplace noclobber).
>&! Ce caractère permet d'indiquer une redirection vers stdout et stderr (remplace noclobber).
>> Ce caractère permet d'indiquer une redirection vers stdout avec ajout.
>>& Ce caractère permet d'indiquer une redirection vers stdout et stderr avec ajout.
>>! Ce caractère permet d'indiquer une redirection vers stdout avec ajout (remplace noclobber).
>>&! Ce caractère permet d'indiquer une redirection vers stdout et stderr avec ajout (remplace noclobber).
<< Ce caractère permet de lire les lignes d'entrée jusqu'à ce qu'une chaîne de caractères soit rencontrée au début d'une ligne.

Extension de nom de fichier et correspondance de motif

Nom Description
* Ce caractère permet d'indiquer une correspondance de zéro ou plusieurs caractères.
? Ce caractère permet d'indiquer une correspondance avec un simple caractère.
[list] Ce caractère permet d'indiquer une correspondance à n'importe quel caractère dans list.
[lower-upper] Ce caractère permet d'indiquer une correspondance de n'importe quel caractère compris entre lower et upper.
str{str,str2} Ce caractère permet de développer différentes parties avec str.
~ Ce caractère permet d'indiquer le répertoire du compte d'origine (dans le répertoire home).
~user Ce caractère permet d'indiquer le répertoire du compte spécifié par user.

Guillemet

Nom Description
`cmd` Ce caractère permet d'indiquer qu'il faut exécuter cmd et remplacez la sortie (substitution de commande).
\c Ce caractère permet d'indiquer un caractère d'échappement c (à prendre à la lettre).
'str' Ce caractère permet d'indiquer des caractères de chaîne de caractères pris littéralement.
"str" Ce caractère permet d'indiquer une chaîne de caractères autorisant la substitution de commande et la substitution de variable.

Caractères spéciaux à échapper

Nom Description
un espace Ce caractère permet d'indiquer un séparateur de paramètre de commande.
une tabulation Ce caractère permet d'indiquer un séparateur de paramètre de commande.
retour de chariot Ce caractère permet d'indiquer un terminateur de paramètre de commande.
$ Ce caractère permet d'indiquer un identificateur de variable.
*, [, ], ?, {, }, ~ ou - Ces caractères permettent d'indiquer un développement de fichier.
<, >, & ou ! Ces caractères permettent d'indiquer une redirection.
! ou ^ Ces caractères permettent d'indiquer un historique.
| Ce caractère permet d'indiquer un tuyau.
; Ce caractère permet d'indiquer un délimiteur de commande.
( et ) Ces caractères permettent d'indiquer un groupe de commande.
\, ' ou " Ces caractères permettent d'indiquer des guillemets.
` Ce caractère permet d'indiquer une substitution de commande.
& Ce caractère permet d'indiquer une exécution en arrière-plan.

Variables de l'interpréteur de commande

Les modificateurs de variable s'appliquent aux éléments suivants (remplacez var par argv pour faire référence aux paramètres de la ligne de commande) :

Nom Description
$var Ce modificateur de variable permet d'indiquer la valeur d'une variable.
${var} Ce modificateur de variable permet d'indiquer la valeur d'une variable, isole la chaîne de caractères var.
$var[i] Ce modificateur de variable permet d'indiquer la valeur du ième mot de la liste de mots var, isole la chaîne de caractère var.
$var[*] Ce modificateur de variable permet d'indiquer la valeur d'une variable.
$var[n-m] Ce modificateur de variable permet d'indiquer les mots n à m de la liste de mots var.
${var[n-m]} Ce modificateur de variable permet d'indiquer les mots n à m de la liste de mots, isolent la chaîne de caractères var.
$var[$#var] Ce modificateur de variable permet d'indiquer le dernier mot de la liste de mots var.
$i Ce modificateur de variable permet d'indiquer le numéro de paramètres entre 1 et 9.
$* Ce modificateur de variable permet d'indiquer tous les paramètres.
$#var Ce modificateur de variable permet d'indiquer le nombre de mots dans var.
${#var} Ce modificateur de variable permet d'indiquer le nombre de mots dans var en isolant la chaîne de caractères var.

Les modificateurs de variable ne s'appliquent pas aux éléments suivants :

Nom Description
$0 Ce modificateur de variable permet d'indiquer le nom du fichier de script.
$?var Ce modificateur de variable permet d'indiquer 1 si var est défini ou 0 s'il n'est pas défini.
${?var} Ce modificateur de variable permet d'indiquer 1 si var est défini ou 0 s'il n'est pas défini en isolant la chaîne de caractères var.
$$ Ce modificateur de variable permet d'indiquer l'identificateur du processus de l'interpréteur de commande parent.
$< Ce modificateur de variable permet de substituer une ligne de stdin. Ce modificateur de variable est uniquement supporté par BSD.

Modificateur de variable

Nom Description
:r Ce caractère permet d'indiquer le nom de la racine.
:h Ce caractère permet d'indiquer le nom de l'entête.
:t Ce caractère permet d'indiquer la partie du bas.
:e Ce caractère permet d'indiquer l'extension. Ce modificateur de variable est uniquement disponible sous BSD.
:gr Ce caractère permet d'extraire les noms de la racine d'un wordlist.
:gh Ce caractère permet d'extraire les noms d'entête d'un wordlist.
:gt Ce caractère permet d'extraire les noms d'entête d'un wordlist.
:ge Ce caractère permet d'extraire les noms d'extension d'un wordlist. Ce modificateur de variable est uniquement disponible sous BSD.
:q Ce caractère permet d'indiquer des guillemets.
:x Ce caractère permet d'indiquer des guillemets et l'étend dans des mots séparés.

Rappel dans l'historique

Voici la syntaxe d'un rappel d'historique :

command [word] [modifier]

Voici la signification des commandes :

Commande (command) Description
:N Cette commande permet d'indiquer la commande N.
:! Cette commande permet d'indiquer la dernière commande.
:-N Cette commande permet d'indiquer Nième commande des dernières commandes.
:str Cette commande permet d'indiquer la dernière commande débutant avec str.
:?str? Cette commande permet d'indiquer la dernière commande avec str n'importe dans une ligne de commande.
:?str?% Cette commande permet de produire le paramètre de la dernière commande avec str.
:{str1}str2 Cette commande permet d'indiquer la dernière commande avec str1, ajouter avec str2.
^str1^str2^ Cette commande permet de substituer str2 pour str1 dans la dernière commande.

Voici la signification du mot :

Mot (word) Description
:0 Ce mot permet d'indiquer le nom de la commande.
:n Ce mot permet d'indiquer le nième mot.
:^ Ce mot permet d'indiquer le premier mot.
:$ Ce mot permet d'indiquer le dernier mot.
:% Ce mot permet d'indiquer le mot correspondant à la recherche ?str?.
:n-m Ce mot permet d'indiquer le nième dans le mième mots.
:-n Ce mot permet d'indiquer de 0 au nième mot.
:n- Ce mot permet d'indiquer de n jusqu'au prochain dernier mot.
:n* Ce mot permet d'indiquer de n jusqu'au dernier mot.
* Ce mot permet d'indiquer de 1 jusqu'au dernier mot.

Voici la signification du modificateur :

Modificateur (modifier) Description
:h Ce modificateur permet d'indiquer la tête du chemin.
:r Ce modificateur permet d'indiquer la racine du chemin (sans extension).
:t Ce modificateur permet d'indiquer la fin du chemin.
:e Ce modificateur permet d'indiquer l'extension du chemin. Ce modificateur n'est disponible que sur BSD.
:q Ce modificateur permet d'indiquer les guillemets du wordlist.
:x Ce modificateur permet d'indiquer les guillemets de mots individuels.
:& Ce modificateur permet d'indiquer une répétition de substitution précédente.
:s/str1/str2/ Ce modificateur permet d'indiquer une substitution de str2 à str1.
:g[hrtes] Ce modificateur permet d'indiquer une modification de tous les mots dans le wordlist en utilisant le modificateur spécifié.
:g& Ce modificateur permet d'indiquer une répétition de substitution précédente globale.

Contrôle de travail (BSD seulement)

Voici la syntaxe d'un contrôle de travail :

command [job_number]

Voici la signification des commandes :

Commande (command) Description
bg Cette commande permet d'indiquer l'exécution d'une commande en arrière-plan.
fg Cette commande permet d'indiquer l'exécution d'une commande au premier plan.
kill [signal] Cette commande permet d'indiquer une terminaison ou d'envoyer un signal.
stop Cette commande permet de suspendre l'exécution en arrière-plan.
notify Cette commande permet d'indiquer un avertissement quand l'état d'un travail change.
jobs -l Cette commande permet d'indiquer la liste des identificateurs de processus.
^Z Cette commande permet de suspendre le travail de premier plan.

Voici la signification des numéros de travail :

Numéro (job_number) Description
PID Ce numéro permet d'indiquer l'identificateur de processus.
% Ce numéro permet d'indiquer le travail courant.
%N Ce numéro permet d'indiquer le travail N.
%str Ce numéro permet d'indiquer le travail avec str comme nom de commande.
%?str Ce numéro permet d'indiquer le travail avec str n'importe où dans le nom de commande.
%- Ce numéro permet d'indiquer le travail précédent.


Dernière mise à jour : Lundi, le 8 octobre 2018