Beliebt

Passen Sie die csh-Eingabeaufforderung basierend auf dem UID- / Superuser-Status an - Linux, Befehlszeile, Shell-Skript, freebsd, csh

Ich versuche, eine Bedingung einzurichten, in der meine csh-Eingabeaufforderung so angepasst wird, dass sie die Farbe des Benutzernamens und das Eingabeaufforderungszeichen ├Ąndert, wenn ich ├╝ber "su" Root-Berechtigungen ├╝bernehme. Was ist der sinnvollste Weg, dies zu tun?

Rein durch Augapfel meines Bestehenden.cshrc, ich habe versucht, dies hinzuzuf├╝gen, habe aber "Illegal variable name". Gibt es eine bessere M├Âglichkeit, die Benutzer-ID zu ├╝berpr├╝fen und ein Wenn / Dann dagegen zu setzen, oder eine sinnvollere M├Âglichkeit, dies insgesamt zu tun?

if ( $uid == 0 ) then

set prompt = "%{33[31m%}${USER}%{33[0m%}@%{33[32m%}%m%{33[0m%} %{33[35m%}[%~]%{33[0m%} # "
set promptchars = "%#"

else

set prompt = "%{33[36m%}${USER}%{33[0m%}@%{33[32m%}%m%{33[0m%} %{33[35m%}[%~]%{33[0m%} # "
set promptchars = "%$"

endif

Antworten:

1 f├╝r Antwort Ôäľ 1

Sie m├╝ssen die Eingabeaufforderung f├╝r root in Roots .cshrc festlegen

/root/.cshrc


0 f├╝r Antwort Ôäľ 2

Zuallererst Sie tun Sie m├╝ssen die Root-Eingabeaufforderung, die Sie m├Âchten, in ~ root / .cshrc als den anderen vorgeschlagenen Responder festlegen, damit Sie die entfernen k├Ânnen if Bau insgesamt. Au├čerdem wird Ihr "ung├╝ltiger Variablenname" von Ihrem verursacht set promptchars = "%$" - Mit "$" wird eine nicht vorhandene Variable dereferenziert. Du k├Ânnen Vermeiden Sie dies, indem Sie set promptchars = "%$", aber an diesem Punkt warum? Das hei├čt, Sie m├Âchten "$" als root-Eingabeaufforderungszeichen anstatt "#". Werde diese Aussage einfach ganz los.

Obwohl nicht unbedingt erforderlich, k├Ânnen Sie auch ersetzen ${USER} in Ihrer Aufforderung mit %n.