set ±A
set ±A permet de faire l'affectation d'une
variable tableau selon les arguments qui la suivent :
set -A var toto titi tutu tata ( même résultat avec set +A )
echo ${var[0]) toto
echo ${var[2]) tutu
-A pour unset des variables avant leur affectation
+A Les variables ne sont pas détruite avant affectation
set +A var AAA BBB
echo ${var[0]) AAA
echo ${var[1]) BBB
echo ${var[2]) tutu
l'option -s trie les arguments avant de
les affecter : set -s -A var toto tata titiecho ${var[0])
tata echo ${var[1]) titi echo
${var[2]) toto
![[RETOUR]](back.gif)
set --
set -- permet de faire l'affectation des variables
$1, $2 ... selon les arguments qui suivent :
| set -- |
supprime tous les parametres positionnel ($1, $2 ...) |
| set --
toto titi |
$1=toto, $2=titi, $3 vide ... |
| set --
-5 -s |
$1=-5 $2=-s (impossible autrement) |
![[RETOUR]](back.gif)
set +
| set + |
Liste de toutes les variables sans leur valeur |
![[RETOUR]](back.gif)
set -s
l'option -s trie les arguments avant de les affecter
Par exemple si on a entré ccc aaa bbb en
arguments du programme :
| set -s |
|
| echo $1 |
aaa |
| echo $2 |
bbb |
| echo $3 |
ccc |
![[RETOUR]](back.gif)
set -o
set -o sans paramétre permets de faire la liste des options
en-cours et leur status actif ou inactive.
set -o option permet d'activer l'option indiquée.
set +o option permet de désactiver l'option indiquée.
(voir les différentes options ci-après).
![[RETOUR]](back.gif)
set -o allexport ; set -a
| set -a |
Toutes les variables définies dans le shell sont
exportées. |
| set +a |
Retrait de cette option. |
![[RETOUR]](back.gif)
set -o bgnice
| set -o bgnice |
Tourne tous les programmes background en basse priorité |
| set +o bgnice |
Retrait de cette option. |
![[RETOUR]](back.gif)
set -o emacs ; set -o gmacs ; set -o vi
| set -o vi |
vi devient l'éditeur de ligne de commandes |
![[RETOUR]](back.gif)
set -o errexit ; set -e
En cas d'erreur, ksh exécute le ERR trap s'il a été
défini
Exemple
set -e
function error {
echo "fichier ou répertoire inconnu"
}
trap error ERR
ls /xx
echo "Suite du programme"
ls: 0653-341 The file /xx does not exist.
fichier ou répertoire inconnu
Avec set +o errexit (ou set
+e) le programme ne s'arrete pas en rencontrant l'erreur sur la
commande ls.
Dans l'exemple indiqué le programme continue et le message Suite
du programme est affiché. )
![[RETOUR]](back.gif)
set -o ignoreeof
| set -o ignoreeof |
En interactif désactive l'action du "<CTRL>+d".
Il faut faire exit pour sortir |
![[RETOUR]](back.gif)
set -o keyword ; set -k
| set -k |
Ce flag permet une compatiblité avec
le bourne shell sur l'affectation des variables lors de la lecture des
lignes.
Mieux vaut ne pas l'utiliser. |
![[RETOUR]](back.gif)
set -o markdirs
| set -o markdirs |
Termime le nom des répertoires par
un / lors des paths étendus
echo /usr/include/sys* -->
sys/ sysexits.h syslog.h |
![[RETOUR]](back.gif)
set -o monitor ; set -m
| set -m |
Indique par un message la fin d'un job en
background (c'est une option par défaut) |
sleep 1 & <ENTREE>
[1] 8289
<ENTREE>
[1] + 8289 Done sleep 1 &
![[RETOUR]](back.gif)
set -o noclobber
| set -o noclobber |
Vous ne pouvez plus écraser un fichier avec l'opérateur
de redirection >
Vous devez utiliser >| |
![[RETOUR]](back.gif)
set -o noexec ; set -n
| set -n |
Option de debug permettant de vérifier
la syntaxe d'un shell. Les commandes ne sont plus exécutées.
Cette option est ignorée en mode interactif. |
![[RETOUR]](back.gif)
set -o noglob ; set -f
| set -f |
Option interdisant les expensions du path. |
![[RETOUR]](back.gif)
set -o nolog
| set -o nolog |
En interactif ne sauve plus les commandes
pass‚es dans le fichier historique ($HOME/.sh_history) |
![[RETOUR]](back.gif)
set -o nounset ; set -u
| set -u |
Envoi un message d'erreur quand on essai
d'utiliser une variable non définie. |
unset toto
echo $toto /bin/ksh: toto: 0403-041 Parameter not set.
![[RETOUR]](back.gif)
set -o privileged ; set -o protected ; set -p
Cette option n'est plus disponible sous AIX depuis qu'il
est interdit d'executer des
scripts shell avec un setuid.
| set -p |
Concernait l'usage d'un programme avec les
permissions d'un autre user id et un autre group id. $HOME/.profile n'est
plus exécuté, pas plus que le shell d'environnement défini
par la variable ENV qui est remplacé par /etc/suid_profile. L'option
protected restaurait en plus la variable PATH. En mettant off cette option
le UID ou GID effectif est remplacé par le vrai UID et GID. |
![[RETOUR]](back.gif)
set -o trackall ; set -h
| set -h |
Permet au ksh de créer automatiquement
un alias tracké pour toutes fonctions appelée à travers
la variable $PATH. Exemple : ls=/usr/bin/ls
Cette fonction est automatique pour tous shells non interactifs.
Pour lister tous les alias trackés : alias
-t |
![[RETOUR]](back.gif)
set -o verbose ; set -v
| set -v |
Affiche dans la standard erreur les lignes
de code telles qu'elles sont lues (option de debug). |
![[RETOUR]](back.gif)
set -o viraw
| set -o viraw |
Lit chaque caractère comme s'il était
édité sous vi.
Peux être utile avec certains terminaux pour interpréter
le caractère de fin de ligne. |
![[RETOUR]](back.gif)
set -o xtrace ; set -x
| set -x |
Option de débug. la ligne est affichée
interprétée derrière le prompt défini par PS4.
(par défaut + ) |
set -x
toto=$SHELL + toto=/bin/ksh
Cette option de débug peut être utilisée
avec l'option verbose
set -xv
toto=$SHELL toto=$SHELL
+ toto=/bin/ksh
Remarque : set +xv est équivalent à : set +x
; set +v.
![[RETOUR]](back.gif)