Créer un nom d'alias avec un espace

Résolu
Cocofoot03 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour, j'ai une petite question toute bête, j'aimerais créer un alias dont le nom comporte un espace mais je sais pas comment m'y prendre.

Merci d'avance

2 réponses

  1. Domy31 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   182
     

    Bonjour Cocofoot03,

    alors il y a le pseudo espace en fait c'est un un truc qui apparaît comme une séparation mais est un vrai caractère transparent pour se faire tu utilise le caractère ascii "255" comme il ne fait pas partie de ton clavier pour l'avoir :

    je veux écrire "Bon jour" donc je tape "Bon" je maintien la touche Alt appuyé en tapan 255 sur le clavier numérique je lâche Alt et je tape jour

    Bon jour = avec espace

    Bon jour = avec Alt255

    il n'y a pas de différence à la vue.

    Voici voila ..

    Bon ne jour née = tous avec Alt255

    .

    N'oublie pas de mettre résolu ...


    1
    1. brucine Messages postés 24941 Date d'inscription   Statut Membre Dernière intervention   4 178
       

      Bonjour,

      Il n'y a pas de "pseudo-espace": il y a l'espace classique (table ASCII de base 32) et l'espace insécable (ASCII 160 ou 255).

      Je n'entends pas grand chose à Linux et encore moins à son Shell, ce qui est certain, c'est qu'un nom d'alias ne peut comporter qu'un mot, et il n'est pas acquis que l'espace insécable en transforme deux en un: dans les deux cas, il y a un caractère entre les deux mots.

      Pour en rajouter une couche, les combinaisons ASCII évoquées font partie du monde Windows et sont inopérantes sous Linux, je n'y connais pas la combinaison d'accès, donc avant de claironner "résolu"....

      Pour revenir à nos moutons, certains prétendent qu'il suffirait de mettre la chaîne entre parenthèses, le consensus est qu'il faut utiliser une fonction au lieu d'un alias.

      https://superuser.com/questions/105375/how-to-use-spaces-in-a-bash-alias-name

      2
      1. Domy31 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   182 > brucine Messages postés 24941 Date d'inscription   Statut Membre Dernière intervention  
         

        Bonjour Brucine,

        Désolé mais là je suis sous Ubuntu et ca marche ...

        Je vais rajouter que si Alt255 ne fonctionne pas tape Alt0255 ca dépend de ta configuration, mais là je sèche sur le pourquoi ...

        Et merci je ne me rappelais pas comment s'appelais cet espace ...

        Bon ne jour née > Hi ! HI !

        0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     

    Bonjour,

    Peux-tu préciser pourquoi tu as besoin de faire un alias qui comporte un espace ?

    Car comme dit plus haut, il n'est pas possible de définir un alias qui comporte un alias, tu peux juste t'en sortir en définissant une fonction dont le nom coïncide avec le premier mot.

    En effet, en bash, l'espace sert à séparer une commande ou une fonction de ses arguments. Introduire un espace dans un nom le rendrait ambigu. Tu ne peux pas nommer un alias avec une chaîne qui comporte des espaces, et tu ne peux pas les échapper.

    (mando@silk) (~) $ alias "bon jour"=ls
    bash: alias: « bon jour » : nom d'alias non valable
    
    (mando@silk) (~) $ alias "bon\ jour"=ls
    bash: alias: « bon\ jour » : nom d'alias non valable
    

    Et un espace insécable n'est pas un espace. C'est un autre caractère, comme le souligne Brucine.

    Bonne chance

    1