Pb echo

Bonjour, nous avons beaucoup de shell qui utilisent le echo et nous etions avec des Redhat sans problème. Je viens d’installer sur un nouveau serveur la dernière version de debian et j’ai un problème avec le echo. Quand je fais un echo “blabla \c” il m’affiche “blabla \c” et le \c me gene bougrement comment m’en debarasser … Merci.

Avec l’option -n :slightly_smiling:

justement je veux eviter de modifier tout nos shells (c’est pour cela que je n’utilise ni le -e ni le -n et ca marchait tres bien sous redhat4)

Je ne suis pas sûr de ma réponse mais le \ est un caractère d’échappement pour les caractères qui peuvent avoir une autre fonction, comme par exemple le ’ mais pas pour un caractère normal comme c’est le cas : c

bonjour,

si tous tes scripts sont utilisés par un seul et même utilisateur, tu peux résoudre ton problème en créant un alias (alias echo=‘echo -e’) dans leur .profile

si plusieurs utilisateurs, alors ajoute l’alias dans le fichier profile commun (/etc/profile)

si tes scripts sont utilisés en crontab, il faut ajouter l’alias dans la crontab

Les alias utilisateurs fonctionnent dans les scripts ?
J’aurais plutôt écris un petit wrapper et redéfini le PATH par exemple.

oui, c’est étrange … j’étais persuadé que c’était le cas :confused:

bon dans ce cas, ce n’est pas bien compliqué. Il suffit d’utiliser une fonction à la place d’un alias :

function echo()
{
   builtin echo -e "$@"
}
export -f echo

si c’est utilisé en crontab, il faut mettre dans un fichier que l’on “source” avant l’exécution des scripts

C’est une histoire de ‘sh’ ==> 'bash’
Je viens de faire l’essai, même sous Debian, avec un script .sh, le ‘\c’ n’apparaît plus, alors qu’avec .bash, c’est inopérant.
À toi de voir si tu modifies bash par sh ou si tu refais les scripts