Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: drat 12 Října 2006, 18:08:08

Název: .bash_profile - nastaveni bin do PATH
Přispěvatel: drat 12 Října 2006, 18:08:08
Ahoj narazil jsem na zajimavou vec. V .bash_profile je podminka, kdy shell zjistuje jestli mam v domovskem adresari bin adresar. Pokud ano mel by ho pridat do PATH. Ne ze bych ho tam chtel, ale zarazilo me ze to nefunguje.
.bash_profile:
Kód: [Vybrat]
# ~/.bash_profile: executed by bash(1) for login shells.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/login.defs
umask 022

# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ]; then
    PATH=$PATH:~/bin
fi
Prave posledni podminka se neprovede i kdyz adresar bin v domovskem adresari mam a ta sama podminka pokud ji udelam rucne v jiz spustenem shellu udela presne to co by mela. Cili zmeni PATH tak ze prida cestu k memu bin.
Nevite nekdo kde je chyba (nebo kde mam chybu :)).
P.S. zkousel jsem ji i davat pred vlozeni .bashrc, jestli nahodou neco v .bashrc nejak neukoncuje zpracovavani .bash_profile, ale bezvysledku.
Název: .bash_profile - nastaveni bin do PATH
Přispěvatel: drat 12 Října 2006, 20:54:53
Takze si zkusim odpovedet sam. Nevim jestli se vam to stava, ale ja vzdy neco resim. Treba i nekolik dni nad tim premyslim a kdyz uz si myslim, ze jsem v koncich, zalozim novy thread a do pul hodiny me to trkne :-/. Jen  jsem chtel teda rict, ze pokud spustite v shellu skript tak udajne je zpracovan v podrizenem shellu (a to uz bud zadanem v hlavicce (napr. #!bin/sh), nebo automaticky vybranem pokud hlavicku nezadate) a z teto operace v podrizenem shellu se neprojevi zadna zmena, typu nastaveni promennych, exportovanych promennych,  zmeny umask atd. atd., v shellu ze ktereho jsme skript pustili. Zpracovani .bash_profile nese tyto priznaky i kdyz jsem si myslel, ze to bash jen cte a vykonava na aktualnim shellu (klasicky skript je pro me hlavne symbolem prava x). Pokud chceme ve skriptu zmenit hodnoty naseho shellu, ze ktereho jsme skript pustili muzeme dat tyto prikazy zvlast do souboru a tento soubor vlozit do skriptu syntaxi:
Kód: [Vybrat]
. soubor. Tohle je i v .bash_profile
Kód: [Vybrat]
# include .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
Tudiz pokud chceme pri startu konzole neco nastavovat musime vse zapisovat do .bashrc (nebo jineho souboru takto vlozeneho). Velice v .bash_profile matou tyto prikazy
Kód: [Vybrat]
umask 022
if [ -d ~/bin ]; then
    PATH=$PATH:~/bin
fi
Jsou tam defaultne i kdyz se neprovedou :(. Myslel jsem si ze tam jsou proto, protoze se vykonavaji :).No ale tohle vsechno plati pro konzoli. Mozna ze pri prihlaseni do systemu bez X-ek by se to chovalo spravne. Nezkousel jsem. Snad jsem si to vylozil spravne. Upominky a korektury vitany.
Název: .bash_profile - nastaveni bin do PATH
Přispěvatel: Pavelp 12 Října 2006, 22:03:33
Neni to tim, ze bash_profile je pro login shell, kdezto bashrc pro nologin?
Tedy pokud uz mate masinu spustenou, obvykle spoustite nologin shell, takze bash_profile se neuplatni. (snad nekecam).
PP.
Název: .bash_profile - nastaveni bin do PATH
Přispěvatel: drat 14 Října 2006, 08:31:34
Hm asi  je to presne tak. Zkousel jsem to a funguje to prasne tak. Dik za odpoved.