printf und zsh

ijon

Member
Hallo zusammen,
hab mich einbisschen im Forum umgesehen und bemerkt, dass viele zsh nutzen... wie auch ich
mein Problemchen ist folgendes:
vorher aber paar outputs:

$ pkg_info |grep zsh
pkg_info |grep zsh
zsh-4.2.4-static Z shell, Bourne shell-compatible, release flavor

$ cat /home/ijon/.zshrc
echo "\n\e[37m `/usr/games/fortune -a`"
alias vi=vim
EDITOR=vim
PAGER=less
export EDITOR PAGER
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[3~" delete-char
bindkey "^H" run-help
PS1=$(echo -n "\n%{\e[32m%}[%W-%T] %B%n@%m%b %{\e[36m%}%~%{\e[0m%}\n$ ")

$ uname -pa
OpenBSD deimos.mars 3.7 GENERIC#50 i386 AMD-K7(tm) Processor ("AuthenticAMD" 686-class)

zum _Problem_:
printf (sh-formatted_output und c) zeigen keine Ausgabe wenn kein \n am Ende angegeben ist...
Beispiel:

[07/07/05-16:13] ijon@deimos ~
$ printf "hallo welt"

[07/07/05-16:13] ijon@deimos ~
$ printf "hallo welt\n"
hallo welt

WIESO? und kann Jemand helfen?


Dank & Grüsse
Ijon

ps.:
ich hoffe es ist unter > Geekstuff > Programmieren gut untergebraucht
 
So weit ich weiss kommt das daher, dass deine PS (der Prompt halt) deinen output von printf überschreibt (mit \r$PS1). Das ist eigentlich ganz normal.
Das selbe passiert auch bei Perl: perl -e 'print "foo"'.
Noch ein Beispiel: printf 'foo\rbar\n' <- hier wird foo von bar überschrieben.
Bei echo foo wird imemr ein \n automatisch angehänt (ausser man gibt die option -n an).

Gruß tschepe
 
Hmm.... das hab ich mir anfangs auch so gedacht, aber wenn ich mit PS1="" (oder unset PS1)den Prompt(PS1) auf NULL setzt, dann sieht es nicht besser aus.
komisch unter ksh, bash, csh hab ich dieses Problem (mit definierter PS1) nicht... was nicht heissen soll, dass ich umsteige
 
Zurück
Oben