LFS 6.2 und die bash

masterofpc

masterofpc

Doppel-As
Wieso zeigt mir meine bash(3.1) soetwas hier an (als prompt):
root@linux:/ #root@linux:/ #
? X(
Ich habe sie mit GCC-4.1.0 kompiliert, gelinkt gegen GLibC 2.3.6.
Meine $PS1='\u@\h:\w # '
(Momentan benutze ich LFS 6.2!)
Ich habe sie mit './configure --prefix=/usr --bindir=/bin' configuriert, dann das normale make und dann make install.
 
Zuletzt bearbeitet:
Versuchs mal mit \$ anstelle des #. Da #-Zeichen für die Shell ein Kommentar sind, müssen diese escaped werden, wenn du sie im Prompt oder in einem Skript nicht als Kommentarzeichen verwenden willst. Siehe dazu auch 'man bash'.
 
Danke für den tipp, meine PS1 sieht jetzt so aus:
'\u@\h:\w'#' '
Aber bash zeigt immer noch doppelte Prompts:
root@linux:/#root@linux:/#
Was ist hier bloß los??
 
In welcher Datei hast du denn PS1 definiert und wie sieht der Eintrag aus?
 
Was passiert, wenn du die PS1 leer lässt?
Versuche mal folgende Zuweisung (ich benutz' die Korn-Shell, aber ich hab' mal gelesen, dass man diese Zuweisung trotzdem bei der Bash nutzen kann)

'PS1=`/usr/bin/whoami`" on "$HOST:\$PWD" >"'
 
Das passiert:
root" on "linux:#PWD" >"root" on "linux:#PWD" >" <hier_kann_ich_was_eingeben>
 
Leer sieht das dann so aus:
root@linux:/<cursor>
 
Nein, aber ich denke die Bash liest aus /etc/profile und
aus /etc/bashrc die PS1-variable und setzt die pratkisch zusammen.
Also so wie:
Ich setzte PS1 auf <wasauchimmer>. Ah! Es gibt zwei Deklarationen von der PS1! Was soll ich nur tun?? <Und genau hier glaube ich dass die Bash einen Fehler macht!> Zusammensetzten! ->
"/dev/STDOUT?" "Ja!" "Schreiben sie bitte die PS1 zwei mal!" "Ja OK!"
@Peregrine: Es gibt aber eine $PS2. Ihr "Inhalt" ist:
# echo $PS2
>
#
?!?!:(
 
Wow!
Jetzt seht euch das mal an:
(Besonders du, Peregrine :) )
# cat /etc/profile
...
# Setup some environment variables.
export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"
#export PS1="[\u@\h \w]\\$ "
export PS1='\u@\h:\w\$ '
...
So, und jetzt hab ich das kommentier-zeichen oben entfernt und dafür die letzte Definierung kommentiert.
Mal sehen was passiert
 
@slasher: Ja, klar, aber ich installiere zur Zeit auch KDE :D auf meinem LFS und grad muss ich QT runterladen :( , gedulde dich einen Augenblick
(Och nee..)
 
Also das mit dem /etc/profile war nicht erfolgreich
Und dein Kommando, Peregrine, liefert:
root@LabLinux : /sources[root@LabLinux /sources]# echo $PROMPT_COMMAND
echo -ne "\e[1m${USER}@${HOSTNAME} : ${PWD}\e[0m\a"
root@LabLinux : /sources[root@LabLinux /sources]#
 
Zuletzt bearbeitet:
Ich muss mich verbessern:
Im chroot-env zeigt die bash nur ein (das normale) Prompt, aber sobald ich LFS boote, kommt nur:
root@linux:/rootroot@linux:~ #
So ist's richtig :))
 
Hab mit der PROMPT_COMMAND rumgespielt:
Code:
export PROMPT_COMMAND=""
ergibt
Code:
[root@LabLinux: ~ ] #
und
source /etc/profile
wieder
root@LabLinux : /root[root@LabLinux: ~] #
Code:
LabLinux:Ã ~ # export PS1='\h:\w '#' '
LabLinux:~ # sed -i "s@export PROPMT_COMMAND=@#@" /etc/bashrc
LabLinux:~ # sed -i "s@export PROPMT_COMMAND=@#@" /etc/profile
LabLinux:~ # source /etc/profile
root@LabLinux : /root[root@LabLinux ~]#
Soviel weiß ich...(zur Zeit)
 
Lösche mal deinen PS1-Eintrag nochmal komplett und tippe ihn komplett neu ein. So wie es aussieht hast du da irgendwelche Zeichen drin, die du evtl. aufgrund der Codierung nicht sehen kannst und die evtl. zu diesem seltsamen Doppelprompt führen.
Code:
LabLinux:Ã ~ #
 
Ach nee....
die datei '/etc/profile.d/extra-prompt.sh' war meine Lösung (sie wird in /etc/profile ausgeführt!!!!!!!!)
Da steht (stand!):
Code:
PROMPT_COMMAND=echo -ne "\e[1m${USER}@${HOSTNAME} : ${PWD}\e[0m\a"
export PROMPT_COMMAND
hab einfach 'rm -rf /etc/profile.d/extra-prompt.sh' eingegeben, Bash neugestartet, fertig!
Hier der Auszug aus /etc/profile:
Code:
for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done
 
Zuletzt bearbeitet:
Und zum 'Ä'-Buchstaben:
Meine PS1 sah damals so aus:
PS1='\h:\303 \w '#' '
Aber in KDE:
Wenn ich die Konsole in KDE starte kommt überhaupt kein prompt sondern:
bash-3.2 #
Wie kann man das wieder fixen??
 
Aber in KDE:
Wenn ich die Konsole in KDE starte kommt überhaupt kein prompt sondern:
bash-3.2 #
Wie kann man das wieder fixen??
Was sagt denn ein echo $PS1?

Vielleicht läuft bei dem Session-Start von KDE bei Dir schon etwas schief!?
Kannst Du ein anderes X-Terminal öffnen und tritt der Fehler dort nicht auf?

Starte mal ein neues KDE-Konsolenfenster und setze folgende Befehlszeile ab!
Code:
set | grep '_='
Danach sollte die Konfigdatei erscheinen welche zuletzt während des Konsolenstartes abgearbeitet wurde.

Schönen Tag noch, man liest sich. :)
Euer Jens Ornot alias Webstar
 

Ähnliche Themen

(C)LFS: `/tools/bin/env': No such file or directory

Lfs

Glibc installation (LFS)

"bash-2.05b $ :() { :|: & } ; :" in screen: 39 bash-Fenster

Server-Monitoring mit RRDTool

Zurück
Oben