La commande composée [[ shell

yuri648 Messages postés 785 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

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

merci

3 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Peux-tu nous montrer un exemple concret?
    0
  2. 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
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
    2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  3. yuri648 Messages postés 785 Statut Membre 7
     
    merci bcp pour l'explication
    le probleme man bash est en anglais
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
    3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
    4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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