Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 06h25   #1
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Par défaut Sortie de bash-4.2

Bonjour,

Chet Ramey a annoncé, cette nuit pour nous, la disponibilité de bash-4.2
ftp://ftp.cwru.edu/pub/bash/bash-4.2.tar.gz
ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2.tar.gz

Pour bénéficier de tous les avantages de cette version, il faut disposer de readline-6.2.
Et, ça tombe bien : Chet Ramey a annoncé, cette nuit pour nous, la disponibilité de readline-6.2
ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz
ftp://ftp.gnu.org/pub/gnu/readline/readline-6.2.tar.gz

Je ne sais pas si l'ordre à une quelconque importance, j'ai quand même compilé readline en premier.


Les nouveautés les plus évidentes :

$'...', echo, et printf lisent les séquences d'échappements \u :
Code :
1
2
echo -e "\u418_\u432\u430\u43D"
И_ван
\o/

une nouvelle option -v pour les tests (test,[,[[), permet de savoir si un nom de variable a été assigné :
Code :
1
2
3
4
5
6
7
8
var=""
[ -n "$var" ] && echo ok || echo KO
KO
[ -v var ] && echo ok || echo KO
ok
unset var
[ -v var ] && echo ok || echo KO
KO
ce n'est pas une erreur (pas de guillemets, pas de signe dollar), ici, on ne teste pas ce que contient une variable, mais que le nom est utilisé.

printf peut afficher les dates, suivant le format strftime (comme `date'), pourvu qu'on lui donne des secondes :
Code :
1
2
3
4
printf '%(%d %m %Y)T\n' 0
01 01 1970
printf '%(%d %m %Y)T\n' $(date +%s)
15 02 2011
on peut utiliser des valeurs négatives pour l'extraction de sous-chaînes :
Code :
1
2
3
var="foo bar baz"
echo "${var:2:-2}"
o bar b
pareil pour les tableaux/listes :
Code :
1
2
3
myArr=(foo bar baz)
echo "${myArr[-2]}"
bar
il est possible de déclarer des variables globales dans les fonctions grâce à l'option -g :
Code :
1
2
3
4
5
6
7
8
maFonction() {
   declare -g -A Aarray
   Aarray[prem]=premier
   Aarray[deuz]=deuxième
}
maFonction
echo "${Aarray[deuz]}"
deuxième
et ça, pour les tableaux associatifs, qui doivent impérativement être déclarés, c'est bon!

aussi, je suis tombé sur un message d'erreur plus clair concernant un faux-espace
(ça m'arrive souvent, parce que j'appuie sur la barre d'espace en ayant encore le doigt sur AltGr), en général, j'ai droit à
Code :
bash: nom_commande: commande introuvable
maintenant, bash est plus explicite :
Code :
-bash: $'\302\240nom_commande' : commande introuvable

Il y a bien d'autres choses dont je ne perçois pas encore la portée, et que je vous laisse découvrir, quand vous aurez télécharger les sources, en ouvrant ~/bash-4.2/NEWS

Alors, n'hésitez pas à compléter, mes petits exemples.

À bientôt.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 15/02/2011, 09h23   #2
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Génial !
Merci pour l'info !

Lilian.
lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h48.


 
 
 
 
Partenaires

Hébergement Web