[Debian]:bash: [ in $PS1: root <-> user
Hallo,
beim Rumprobieren mit dem Bash-Prompt (PS1) habe ich ein merkwürdiges
Phänomen entdeckt, das ich gern verstehen würde ...
Der Wert von $PS1 ist für root und normale user identisch:
$LOGNAME@\h:1 $PWD`[ \$(( \$( date '+%S' | sed s/^0// ) )) -lt 6 ] && echo -n " " && date '+%H:%M'` \$
Im Klartext: PS1 = user@host:tty aktuelles_verzeichnis evtl._uhrzeit $_oder_#
evtl._uhrzeit := Zeige Uhrzeit an, wenn aktuelle Sekunde im Intervall 0..5 .
Für einen normalen User funktioniert das einwandfrei, für root seltsamer-
weise nicht, obwohl $PS1 für beide identisch ist. root bekommt als Prompt
folgende Fehlermeldung:
bash: [: missing `]'
Weiß jemand, warum eine root-bash [ aka test(1) in $PS1 anderes inter-
pretiert als eine user-bash?
In /etc/passwd ist sowohl für root als auch für normale User /bin/bash
eingetragen. /bin/sh ist ein Symlink auf /bin/bash.
$PATH für root ist: /root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11/bin
$PATH für user ist: /home/frs/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
### /etc/profile #############################################################
PS1="\$LOGNAME@\h"
PS1=$PS1:$( tty | sed s/"\/dev\/tty"// )
PS1="$PS1 \$PWD"
# if sec < 6 then print current time
# Sieht gefährlich aus, aber funktioniert. :-)
PS1="$PS1\`[ \\\$(( \\\$( date '+%S' | sed s/^0// ) )) -lt 6 ] && echo -n \" \" && date '+%H:%M'\`"
# $(--- cmd --------------------)
# $((--- eval ---------------------------))
# [--- test condition -------------------------------] ^-- then cmd ----------------^
# `----- cmd -----------------------------------------------------------------------------`
PS1="$PS1 \\$ "
export PS1
<EOF>
TIA, Frank
--
Es ist einfacher, eine Shell zu portieren, als ein Shellskript.
-- Larry Wall
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 735
Reply to: