Warum wird auf dem Bildschirm nicht der Name des aktuell ausgeführten Prozesses angezeigt? (Mac OSX Terminal Bash)

7

Ich verwende den Bildschirm in der Mac OSX Terminal App (Bash).

Hier ist das screenrc (habe es von hier bekommen ):

$ cat ~/.screenrc 
termcapinfo xterm* ti@:te@
startup_message off
defutf8 on
shelltitle "$ |what?" # make screen assign window titles automatically
hardstatus alwayslastline
hardstatus string '%{= kw} [ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %m/%d/%y/ %C %A %{w}]%{w}'
$

Wie zu sehen ist, habe ich die Zeile, um den aktuellen Prozessnamen als Titel auf dem Bildschirm anzuzeigen:

shelltitle "$ |what?" # make screen assign window titles automatically

Aber auf dem Bildschirm sehe ich nur "was?" (Standardeinstellung) anstelle des Prozessnamens. Was darauf hindeutet, dass "$" nicht funktioniert.

Was vermisse ich? Und wie funktioniert das "$ | etwas-anderes"?

Arnab
quelle

Antworten:

5

Auf was ist Ihre Bash-Eingabeaufforderung eingestellt (dh die PS1-Variable)?

Versuchen Sie Folgendes in Ihrem .bashrcoder .profile:

export PS1='\[\033k\033\\\]\u@\h:\w\$ '

und in Ihrem .screenrc:

shelltitle "$ |bash:"

Das habe ich und es funktioniert. Grundsätzlich benötigt der Bildschirm eine magische Zeichenfolge, um zu wissen, wie Ihre Eingabeaufforderung endet, damit er den ausgeführten Befehl abrufen kann. Sie können es variieren. Weitere Informationen zur Funktionsweise finden Sie in der Erklärung auf dieser Seite:

ars
quelle
Entschuldigung für die späte Antwort - war AWOL. Ich habe nachgelesen und festgestellt, dass der Bildschirm eine magische Zeichenfolge benötigt (außer in zsh usw.). Diese Lösung funktioniert jedoch immer noch nicht. Folgendes habe ich: $ grep PS1 .bashrc export PS1 = '\ [\ 033k \ 033 \\\] \ u @ \ h: \ w \ $' $ grep bash .screenrc shelltitle "$ | bash:" Also jetzt alles Ich sehe ist "bash:" :)
Du solltest "bash" sehen, während du an der Eingabeaufforderung bist, denn das ist das einzige, was läuft. Wenn Sie "sleep 600" ausführen, sollte es während des Betriebs in "sleep" geändert werden, abgeleitet aus dem von Ihnen eingegebenen Wort.
Gabe