Wenn ich echo -e "\e[1;31mThis is red text\e[0m"in der Kommandozeile laufe, druckt es roten Text aus.
Wenn ich es jedoch benutze, schreibe ich es in eine Skriptdatei test.sh
#! /bin/bash
echo -e "\e[1;31mThis is red text\e[0m"
Lauf $ sh test.sh
Es wird ausgedruckt
-e \e[1;31mThis is red text\e[0m
Warum handeln sie anders?

/bin/echomit dash (/bin/sh) und bash;echomit bash oder./tes.shbeides funktioniert einwandfrei. Der folgende Code funktioniertbashnur mit. if [$ UID -ne 0]; dann echo "Nicht root" else echo "Root - Benutzer" fi