Behålla sin bash_profile i screen

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Maj 2004

Behålla sin bash_profile i screen

Hej!

Undrar hur man behåller sin bash_profile när man kör screen, eller vart någonstans man anger samma sak fast för screen.

Trädvy Permalänk
Medlem
Registrerad
Mar 2005

Menar du din prompt? Den vanligaste frågan är varför prompten ser annorlunda ut så jag svarar på det. Den sätts med miljövariabeln $PS1. Med bash kan du göra så här:

case "$TERM" in xterm*|rxvt*|linux|screen) PS1='\u@\h:\w\$ ' *) PS1='\$ ' esac

Den första raden är den viktiga här. Den säger till bash att om terminalen heter xterm* (t.ex. "xterm", "xterm-color", etc), rxvt* (rxvt, rxvt-unicode, etc), linux eller screen så ska PS1 sättas till det som följer. *) är fallback - i alla terminaler som inte heter något av alternativen ovan ska prompten sättas till den enklast möjliga.

Antagligen har du en liknande lista redan, så lägg helt enkelt till "screen" där så bör det fungera.

Håkan

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Maj 2004

Jag menar min pompt. Den ser precis ut som jag vill ha den när jag inte kör screen, men så fort jag kör igång screen blir den annorlunda, det du skrev funkade inte alls, då började den klaga på "uknown command" ungefär.

Kör FreeBSD med bash.

Det jag använder för att få den att se ut som jag vill, finns inga inställning med case eller så.

PS1="[\u@\h:\w] " case `id -u` in 0) PS1="${PS1}# ";; *) PS1="${PS1}$ ";; esac

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002

Byt namn på den till .bashrc så att den exekveras varje gång du startar shell, .bash_profile exekveras bara när man startar ett login shell.

Alternativt se till att Bash körs som ett login shell när du startar screen genom att lägga ett - framför shellet i .screenrc, så här:

shell -$SHELL

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Maj 2004
Citat:

Ursprungligen inskrivet av m0REc
Byt namn på den till .bashrc så att den exekveras varje gång du startar shell, .bash_profile exekveras bara när man startar ett login shell.

Alternativt se till att Bash körs som ett login shell när du startar screen genom att lägga ett - framför shellet i .screenrc, så här:

shell -$SHELL

Tack nu funkar det.

Behövdes inget alls i .screenrc, bara döpa om .bash_profile till .bashrc

Trädvy Permalänk
Medlem
Registrerad
Mar 2005

Jag sourcar min ~/.bashrc från min ~/.bash_profile. På så sätt har jag alltid samma miljö. Min ~/.bash_profile:

if [ -f ~/.bashrc ]; then . ~/.bashrc fi

Det är allt! Väldigt enkelt och effektivt.

Håkan