GNU Screen + Bash history hack

screen-t úgy használom, hogy indításakor megnyit több session-t különböző mappákban különböző programokkal. Példa .screenrc fájl:

startup_message off
defscrollback 10000
caption always "%{-b ..}%-w%{+b ..}[%n %t]%{-}%+w"

chdir /home/user/dir1
screen program1
title "test1"

chdir /home/user/dir2
screen program2
title "test2"

Szerettem volna ha bizonyos shell sessionbe beállíthatok egy bash history-t alapból. Nehéz volt megszülni. Itt találtam a megoldást:

http://stackoverflow.com/a/7193037

Hogy nyissunk egy olyan bash shellt, amely megtartja a .bashrc-t és saját history-t adhassunk neki, így tudtam megoldani:

bash --rcfile <(echo "source '$HOME/.bashrc'; history -s 'ls -ltrha'; history -s 'pstree -n';")

Ez egy olyan új shellt nyit, ahol a megnyitott shellben fog lefutni a history parancs, nem pedig egy ettől különbözőben. Éppen ez adta a nehézséget. Tehát az új shell-ünk history-ja így a fenti 2 bejegyzést fogja tartalmazni.

Hozzászólások

A HISTFILE megfelelő beállítása nem elegendő? Logikusan valami session-id-t raknék hozzá, mondjuk így:

chdir /home/user/dir1
screen env HISTFILE=~/.bash_history_test1 program1
title "test1"

chdir /home/user/dir2
screen env HISTFILE=~/.bash_history_test2 program2
title "test2"

@Zahy:

Légyszíves zárd le a code tag-et.

A histfile nem igazán temporary, ügyelnem kellene a törlésére. Illetve bele is kellene pakolnom a tartalmat. Macerásabbnak tűnik.

Lehet túl tömören fogalmaztam. Nem az a célom hogy a session-nek meglegyen a history-ja később is, hanem hogy a shell egy adott fajta history-vel induljon. Az egyik session-ömben sok visszatérő parancsot futtatok fejlesztéshez.

(A fenti ls és pstree csak példa a kódhoz. Nem ezeket használom.)

sub.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 14.1 | 3.10.84-janos

screen alatt van $WINDOW
mehetne bashrc-be:

if [ "$WINDOW" = 1 ]
then
history -s 'ls -ltrha'
history -s 'pstree -n'
elif [ "$WINDOW" = 2 ]
then
history -s 'masik haszos parancs'
...
fi

~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack