Pascal BEAUSSART

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][HOME]

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][HOME]

set +


set + Liste de toutes les variables sans leur valeur

[RETOUR][HOME]

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][HOME]

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][HOME]

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][HOME]

set -o bgnice


set -o bgnice Tourne tous les programmes background en basse priorité
set +o bgnice Retrait de cette option.

[RETOUR][HOME]

set -o emacs ; set -o gmacs ; set -o vi


set -o vi vi devient l'éditeur de ligne de commandes

[RETOUR][HOME]

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][HOME]

set -o ignoreeof


set -o ignoreeof En interactif désactive l'action du "<CTRL>+d". 
Il faut faire exit pour sortir

[RETOUR][HOME]

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][HOME]

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][HOME]

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][HOME]

set -o noclobber

set -o noclobber Vous ne pouvez plus écraser un fichier avec l'opérateur de redirection >
Vous devez utiliser >|

[RETOUR][HOME]

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][HOME]

set -o noglob ; set -f

set -f Option interdisant les expensions du path.

[RETOUR][HOME]

set -o nolog

set -o nolog En interactif ne sauve plus les commandes pass‚es dans le fichier historique ($HOME/.sh_history)

[RETOUR][HOME]

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][HOME]

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. (Un vrai danger sécurité informatique !!)
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][HOME]

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][HOME]

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][HOME]

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][HOME]

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][HOME]