problème de création d'un alias

bonjour ,

ayant une commande complexe à utiliser assez souvent je voudrais lui associer un alias . Mon fichier .bashrc en contient déjà que j’ai fabriqués sans problème . J’ai procédé de la même façon avec cette commande :

mais il ne la reconnaît pas ( avec ou sans la fin /home/mm/source.txt ). Je suppose que les " et ’ internes doivent poser problème et entrer en conflit avec le ’ du début de commande . Comment procéder dans un tel cas ?

Salut,

as-tu essayé \ pour protéger les ’ internes ?

comme ça :

rep="sed -i -e "s/–/-/g" -e "s/’/\'\/g" -e "s/…/.../g" -e "s/“/\'\/g" -e "s/”/\'\/g" /home/mm/source.txt"

ça ne marche pas non plus : n’est pas reconnu

  • zut , j’ai changé les ’ en " . Je réessaie

rep='sed -i -e "s/–/-/g" -e "s/’/\'\/g" -e "s/…/.../g" -e "s/“/\'\/g" -e "s/”/\'\/g" /home/mm/source.txt' Ben ça coince aussi et je dénature l’objet de la commande si je remplace les ’ par des "

Même idée ou alors, si c’est possible sans dénaturer la commande, remplacer les -’- internes par des -"-.
À mon avis, l’alias termine son parcours au premier -’- trouvé.

réponse ci-dessus

Je te conseille de poster la même énigme dans “Programmation”.
MisterFreez te trouvera certainement une réponse.

ok merci , je vais essayer.

juste le résultat d’un dernier essai fait en supprimant les parties avec les ’ : ça fonctionne .

replace='sed -i -e "s/–/-/g" -e "s/…/.../g" /home/mm/source.txt'

Tu n’es pas obligé d’utiliser un alias. Le même résultat peut être obtenu de cette manière :

[ol][li]Créer le répertoire [mono]/home/nom_utilisateur/bin/[/mono][/li]
[li]Ajouter ce répertoire dans le [mono]PATH[/mono] en exécutant cette commande :

[/li]
[li]Créer un nouveau fichier texte dans ce répertoire.[/li]
[li]Renommer le fichier texte en « [mono]rep[/mono] ».[/li]
[li]Rendre ce fichier exécutable en lançant cette commande :

[/li]
[li]Copier-coller le texte suivant dans le fichier texte :

#!/bin/sh sed -i -e "s/–/-/g" -e "s/’/'/g" -e 's/“/"/g' -e 's/”/"/g' -e "s/…/.../g" /home/mm/source.txt
[/li]
[li]Redémarrer l’ordinateur pour que le changement dans le [mono]PATH[/mono] soit pris en compte.[/li][/ol]

Une fois cela fait, tu pourras utiliser la commande [mono]rep[/mono] comme si c’était un alias.

ok merci de la suggestion que je vais garder pour un peu plus tard si la partie “programmation” ne me donne pas une solution avec un alias que je sais où trouver et comment modifier si j’en ai besoin .

Tu pourras trouver et modifier la commande [mono]rep[/mono] dans le fichier texte nommé « [mono]/home/nom_utilisateur/bin/rep[/mono] ».

bon ben voilà , j’ai suivi ta méthode et ça marche impeccable . Re-merci .

donc si j’ai à modifier la liste des substitutions je vais dans le /bin et j’ajoute .

hormis pour mon alias particulier qui n’a pas l’air d’être très simple à programmer , quel est l’avantage de ta méthode ( plus compliquée quand même donc elle doit être plus performante j’imagine ) .

  • je vais peut-être laisser mon post chez les programmeurs et voir ce qu’ils proposent , j’apprendrai toujours qq chose .

L’avantage est que la commande à utiliser ne se trouve pas dans une chaine de caractères délimitée par des guillemets simples ou doubles. Ainsi, il n’est pas nécessaire de protéger les guillemets que contient la commande par des backslashes ( « [mono][/mono] » ). C’est beaucoup plus lisible ainsi.

C’est aussi une question de gouts. Personnellement, je préfère avoir le contenu de chaque commande dans un fichier séparé.

j’ai un collègue forumer de chez bourso qui est intéressé mais il est sous windows . Je lui ai expliqué le principe du truc et lui ai conseillé de trouver un forum windows avec un intervenant qui puisse lui écrire un script adéquat . Ça doit être faisable , non ?

Re,

'/ Cette commande fait ignorer le ’ ET le /

’ pour n’ignorer QUE le ’ :slightly_smiling:

j’ai modifié selon :

mais ça ne marche toujours pas : commande introuvable
si les programmateurs trouvent une solution je la posterai ici .

Cela doit certainement pouvoir se faire sous Windows, mais je ne pourrais pas te dire comment.

Cependant, il existe Cygwin : c’est un programme qui permet notamment d’exécuter des scripts GNU/Linux sur Windows. Il serait cependant plus pratique que ton collègue utilise Debian directement.

La bonne syntaxe pour ton alias est la suivante :

Ce n’est pas très lisible.

bon ben voilà , l’alias que tu proposes fonctionne parfaitement . Je vais mettre résolu pour le post chez les programmeurs .