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/echo
mit dash (/bin/sh
) und bash;echo
mit bash oder./tes.sh
beides funktioniert einwandfrei. Der folgende Code funktioniertbash
nur mit. if [$ UID -ne 0]; dann echo "Nicht root" else echo "Root - Benutzer" fi