Si je cours echo -e "\e[1;31mThis is red text\e[0m"en ligne de commande, il imprime du texte rouge.
Cependant, si j'utilise l'écrire dans un fichier script test.sh
#! /bin/bash
echo -e "\e[1;31mThis is red text\e[0m"
courir $ sh test.sh
Il imprime
-e \e[1;31mThis is red text\e[0m
Pourquoi agissent-ils différemment?

/bin/echoavec tiret (/bin/sh) et bash;echoavec bash ou les./tes.shdeux fonctionne correctement. Le code ci-dessous fonctionnebashuniquement avec . if [$ UID -ne 0]; puis écho "Pas utilisateur root" sinon écho "Utilisateur root" fi