La commande composée [[ shell

yuri648 Messages postés 785 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,

vous pouvez m'expliquer quel est la difference entre la [[ et [ dans la condition if dans shell ?

merci



A voir également:

3 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Peux-tu nous montrer un exemple concret?
0
yuri648 Messages postés 785 Statut Membre 7
 
cet exemple je l'ai trouvé sur un tuto

if [[ ! ( -w /etc/at.deny || -r /etc/at.deny ) ]]
then
echo OUI
else
echo NON
fi


pour quoi ils n'ont pas utilisé if [] au lieu if [[]]

merci
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Re,

Regarde dans man bash
[[ expression ]]
Renvoie un état de 0 ou 1 selon l'évaluation de la condition expression. Les conditions sont composées de primitives décrites plus bas dans CONDITIONS.  Le découpage en mots et le développement des chemins ne sont pas effectués sur les mots entre  [[
et  ]] ; le développement des tildes, des paramètres, des variables, le développement arithmétique, la substitution de commande et de processus, ainsi que la suppression des protections sont effectués. Les opérateurs conditionnels comme -f ne doivent pas être protégés afin d'être reconnus comme primitives.
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Re,

Voir aussi (toujours dans man bash)

CONDITIONS
Les conditions sont utilisées par la commande composée [[ et les commandes internes test et [ pour vérifier l'état d'un fichier et effectuer des comparaisons arithmétiques ou sur des chaînes. 
0
yuri648 Messages postés 785 Statut Membre 7
 
merci bcp pour l'explication
le probleme man bash est en anglais
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Re,

Tu peux le trouver sur net en français
http://pwet.fr/man/linux/commandes/bash/

Tu as quoi comme distribution?
On pourra peut être installer les pages man en français.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Dans certaines distributions récentes (Mandriva par exemple), beaucoup de pages de man en français ont disparu et pire encore, des pages de man tout court ;-((

Exemples :

$ man ls
Il n'y a pas de page de manuel pour ls.
[jp@MDK-2010 ~]$ man tr                
Il n'y a pas de page de manuel pour tr.

Si on veut un descriptif sommaire, il faut passer par "ls --help" ;-(((
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

Si on veut un descriptif sommaire, il faut passer par "ls --help" ;-(((
Et avec info ls, ça donne quoi?

Il n'y a pas de page de manuel pour ls.
Ca c'est effectivement un peu bizarre.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Re-

info ls :

File: dir       Node: Top       This is the top of the INFO tree

  This (the Directory node) gives a menu of major topics.
  Typing "q" exits, "?" lists all Info commands, "d" returns here,
  "h" gives a primer for first-timers,
  "mEmacs<Return>" visits the Emacs topic, etc.

  In Emacs, you can click mouse button 2 on a menu item or cross reference
  to select it.

* Menu:

Archiving
* Cpio: (cpio).                 Copy-in-copy-out archiver to tape or disk.
* Shar utilities: (sharutils).  Shell archiver, uuencode/uudecode.
* Tar: (tar).                   Making tape (or disk) archives.

Basics
* Ed: (ed).                     The GNU line editor
* Finding files: (find).        Operating on files matching certain criteria.

Editors
* nano: (nano).                 Small and friendly text editor.

etc.

Aucune trace de "ls" ;-(((
0