PS1 Variable dynamisch aktualisieren

Post Reply
Message
Author
Christian

PS1 Variable dynamisch aktualisieren

#1 Post by Christian »

Hallo,

ich hätte gern das unter der Posix Shell,
in der PS1 Variable immer wieder das aktuelle
Verzeichnis haben, wie kann ich das ganze dynamisch halten?

Gruss Christian

Jochen

Re: PS1 Variable dynamisch aktualisieren

#2 Post by Jochen »

Hmmm, Posix Shell - welche meinst Du damit genau?

Wenn man nicht mit Shell-Funktionen, Aliasen usw. herumkaspern will, muss die Shell PS1 zur Ausgabe evaluieren. Keine Ahnung, ob die Shell, die Du meinst, das macht. Falls ja, reicht ein

PS1='$PWD \<!--no-->> '
export PS1

oder aber, wenn Deine Shell $PWD nicht setzt, ein

PS1='`pwd` \<!--no-->>'
export PS1

Probier das erst mal aus. Ggf. geht es auch einfacher (wie in der bash), aber dazu müsstest Du die genaue Shell durchgeben; im POSIX ist dazu meines Wissens nach nichts spezifiziert, aber ich könnte mich irren.

Jochen

Christian

Re: PS1 Variable dynamisch aktualisieren

#3 Post by Christian »

Danke erstmal,
also unter der Bash funktioniert es ohne Probleme,
die Posix Shell, welche ich verwende ist die von HP-UX.
Da klappt es auf diese Art nicht, leider, wenn ich die
Bash unter HPUX verwende dann geht es.
Jetzt sagst du, dann nimm doch einfach die Bash.
Es geht darum das Teilnehmer wissen wollen wie es geht,
finde einfach keine Lösung

Jochen

Re: PS1 Variable dynamisch aktualisieren

#4 Post by Jochen »

Ahhh, Posix-Shell unter HP-UX!

Das kann ich leider nicht austesten hier, aber das dürfte eine einfache Bourne-Shell mit Job-Control sein. Dort gibt es m.E. keine Möglichkeit, es wie in der bash zu machen. Aber unter HP-UX ist wenigsten die Korn-Shell (ksh) verfügbar, und unter der kannst Du wie im ersten Posting dargelegt arbeiten.

Kann die Posix-Shell wenigstens Aliase? Wenn ja, könnte man wie folgt vorgehen:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">mycd(){
cd "$@"
PS1=`pwd`' >'
}

alias cd="mycd"
</font><hr></pre></blockquote>Oder aber die Shell kann keine Aliase, aber mit Funktionen die eingebauten Kommandos überladen, dann könnte es ungefähr so funktionieren:
<pre>cd(){
builtin cd "$@"
PS1=`pwd`' >'
}</pre>

Allerdings sind das alles Features, die die originale sh nicht beherrscht; hier kommt es darauf an, was HP-UX hier genau liefert. Bei verschiedenen UNIX-Derivaten gibt es eine jsh (Job-enabled Shell), was einfach nur eine Bourne-Shell mit Job-Control ist; sh ist dann meist nur ein Link auf jsh. Bei anderen wiederum wird die ksh als Posix-konforme Shell verwendet; wie der Link dann aber heisst, weiss ich nicht.

Für alles weitere wirst Du schauen müssen, ob Dir die man-Page weiteres verrät oder welcher Link auf welche Shell verweist (hard links nicht vergessen!).

Viel Erfolg noch,

Jochen

Post Reply