Shell

De system.co.free.fr.
(Différences entre les versions)
Ligne 20 : Ligne 20 :
==commande echo et nouvelle ligne ( new ligne \n )==
==commande echo et nouvelle ligne ( new ligne \n )==
-
Sur les version recentes des Shell en Linux et pour certains autre Unix, la commande
+
Sur les versions récentes des Shell en Linux et pour certains autre Unix, la commande
   echo "\n\n\n\n  toto  \n\n\n"
   echo "\n\n\n\n  toto  \n\n\n"
renvoi
renvoi
   \n\n\n\n  toto  \n\n\n
   \n\n\n\n  toto  \n\n\n
-
et ce n'est pas ce qui est attendu. On prefererais avoir:
+
et ce n'est peut-être pas ce qui est attendu. On prefererais avoir:
<pre>  
<pre>  
    
    
Ligne 35 : Ligne 35 :
l'origine est lié au nouvelles versions de la norme POSIX.
l'origine est lié au nouvelles versions de la norme POSIX.
-
 
+
===echo -e===
===printf===
===printf===
POSIX et IEEE recommande d'utiliser <g>printf a la place de echo. La commande printf accepte de nombreuses options. voir man printf  
POSIX et IEEE recommande d'utiliser <g>printf a la place de echo. La commande printf accepte de nombreuses options. voir man printf  

Version du 9 septembre 2015 à 14:10

Sommaire

SHELL

Connexion

Le shell de connexion est lancé après la saisie du login et du mot de passe sur la console. C’est celui indiqué à la fin de chaque ligne de /etc/passwd.
Dans ce mode, le shell va tenter d'executer les fichiers dans cet ordre et s'ils sont presents :

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

À la déconnexion, il tente d’exécuter :

  • ~/.bash_logout

Shell simple

Le shell interactif simple correspond à l’exécution du bash dans une fenêtre (xterm, konsole), une console ou à la main (taper bash dans une console). Dans ce cas seul le fichier suivant sera exécuté s’il existe :

  • ~/.bashrc

Notez que dans beaucoup de distributions Linux, le .bashrc est appelé soit par .bash_profile, soit par /etc/profile, et que la configuration est donc placée dans .bash_profile qui sera alors toujours appelé.

commande echo et nouvelle ligne ( new ligne \n )

Sur les versions récentes des Shell en Linux et pour certains autre Unix, la commande

 echo "\n\n\n\n   toto  \n\n\n"

renvoi

 \n\n\n\n   toto  \n\n\n

et ce n'est peut-être pas ce qui est attendu. On prefererais avoir:

 
  
  
      toto
  
  

c'est a dire un retour a la ligne ou avec \t une tabulation, ou un caractère spécial avec les autres option commençant par "\" ( \a \b \c\f \n \r \t \v ... )

l'origine est lié au nouvelles versions de la norme POSIX.

echo -e

printf

POSIX et IEEE recommande d'utiliser <g>printf a la place de echo. La commande printf accepte de nombreuses options. voir man printf

pour bash uniquement: shopt -s xpg_echo

Active

 #shopt -s xpg_echo # Active xpg_echo
 #echo "Hello\nworld"
 Hello
 world

Desactive

 #shopt -u xpg_echo # Desactive xpg_echo
 #echo "Hello\nworld"
 #Hello\nworld
Outils personnels