Hozzászólások
Köszi a válaszokat. Már csak arra keresek választ, hogyan oldható meg a PS1 környezeti változó állítása egy bash scriptből úgy, hogy arra a konzolra vonatkozzon amiből el lett indítva.
Azaz
alias pr_tty='temp=`tty`; echo ${temp:5}'
PS1="\\u@\\h \\w `pr_tty`\\$ "
hogyan oldjam meg hogy ezt ne csak .bashrc ill .profileba illesztve tudjam alkalmazni, hanem egy rövid bash scripten belül?
Így csak azon a konzolon élne amelyiken elindítom a "custom promptot" (és a .bashrct nem illik babrálni ott ahol kellene, mert mások is használják ugyanazzal a hallgatói loginnal).
- A hozzászóláshoz be kell jelentkezni
[quote:e258bc4be4="prygme"]Köszi a válaszokat. Már csak arra keresek választ, hogyan oldható meg a PS1 környezeti változó állítása egy bash scriptből úgy, hogy arra a konzolra vonatkozzon amiből el lett indítva.
Azaz
alias pr_tty='temp=`tty`; echo ${temp:5}'
PS1="\\u@\\h \\w `pr_tty`\\$ "
hogyan oldjam meg hogy ezt ne csak .bashrc ill .profileba illesztve tudjam alkalmazni, hanem egy rövid bash scripten belül?
Roppant egyszeruen, nem a .bashrc-be ill .profile-ba rakod, hanem mondjuk a custom_prompt nevu file-be (termeszetesen eleillesztve a #!/bin/bash sort :-)[quote:e258bc4be4="prygme"]
Így csak azon a konzolon élne amelyiken elindítom a "custom promptot" (és a .bashrct nem illik babrálni ott ahol kellene, mert mások is használják ugyanazzal a hallgatói loginnal).
Zsiraf :-)
- A hozzászóláshoz be kell jelentkezni
Hi!
Amit persze futtathatova is kell tenned.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
A tty program nem jó erre? A kimenete egy az egyben az, amit szeretnél. Na jó, esetleg az utat levághatod előle...
- A hozzászóláshoz be kell jelentkezni
[quote:1f99eca2a8="szaszg"]Roppant egyszeruen, nem a .bashrc-be ill .profile-ba rakod, hanem mondjuk a custom_prompt nevu file-be (termeszetesen eleillesztve a #!/bin/bash sort :-)
ezt így gondoltam én is, de amikor kipróbáltam,
[code:1:1f99eca2a8]#!/bin/bash
alias pr_tty='temp=`tty`; echo ${temp:5}'
PS1="DebianWS1 <`pr_tty`> \t >>[/code:1:1f99eca2a8]
Amikor futtatási joogt kapott és lefuttattam,
~$ ./nprompt
./nprompt: line 1: temp: command not found
lett a válasz.
Egy bash scriptben valószínűleg másképp kell aliasokat állítani mint közvetlenül kiadva a parancsot ill .bashrcben.
- A hozzászóláshoz be kell jelentkezni
[quote:cbca624aa5="Zs"]A tty program nem jó erre? A kimenete egy az egyben az, amit szeretnél. Na jó, esetleg az utat levághatod előle...
Nekem a promptba kell, magában nem elég de felhasználom.
- A hozzászóláshoz be kell jelentkezni
[quote:901c7b4b92="prygme"]
[code:1:901c7b4b92]#!/bin/bash
alias pr_tty='temp=`tty`; echo ${temp:5}'
PS1="DebianWS1 <`pr_tty`> \t >>[/code:1:901c7b4b92]
Minek az alias?
Minek a echo ${temp:5}?
Semmi értelme.
PS1="DebianWS1 <`tty`> \t"
- A hozzászóláshoz be kell jelentkezni
Sajnálattal kell megjegyeznem, de itt több hiba is elhangzott.
a) Tehát egy parancs ugyanúgy kell, hogy parancssorban működjön, mint ha szkript-be írod (ez kérem nem C-shell, hogy interaktívan és nem interaktívan mást csináljon)
b) ha al-shellben futtatsz valamit, akkor az a büdös életben nem fog a szülő shellben átállítani shell változót. Magyarul ne úgy futtasd a szkriptedet, hogy:
$ ./szkript
hanem használd a shell kifejezetten erre szóló . (pont) nevű parancsát:
$ . ./szkript
(megkérem a bash-ista kollegákat, hogy ne akarják a tisztelt kezdő kollegát a . helyett a source nevű parancsra rábeszélni, ugyanis az C-shellen kívül nem megy sehol - se POSIX-shellben, se Korn-shellben, se eredeti Bourne-shellben, ellentétben a fent vázolt pont nevű paranccsal)
c) nem látom át, hogy az miért is jó, hogy definiálsz egy alias-t, ami nem csinál semmit
d) mi a franc a probléma azzal, hogy a PS1-be beleteszel egy parancskihelyettesítést?
PS1='$(tty) \$ '
oszt máris a teljes elérési útvonallal adott terminálnév látszik, meg a szokásos dollár-szóköz
e) az meg már végképp hab a tortán, hgy mi a sunyiért nem olvas bele valaki egy ilyen kérdés előtt az általa használt shell dokumentációjába. man bash, keress rá a PS1 -re (nálam ez /PS1 és utána egy n, mert a második találatnál tárgyalja a PS1 változónak adható értéket), majd a sor végéig se kell olvasni, és ott egy újabb hivatkozás a PROMPTING nevű szakaszra, tehát /PROMPTING és máris ott vagyok, ahol szerepel a hanyattörtvonal l kombináció, mint az aktuális terminál nevének "basename" alakja (gy. k: elérési útvonal nélkül), azaz a megoldás:
csinálsz egy szkriptet, aminek neve mondjuk prompt, amiben ennyi áll:
PS1='\l \$ '
export PS1
osztán valahányszor bejelentkezel, kiadod a:
. ~/prompt
parancsot és készen vagy.
Ja, ha nem mondtam volna:
RTFM
- A hozzászóláshoz be kell jelentkezni
es arrol tud valaki hogy a promptba kiiratni hogy hany uj/regi level van pl a postafiokban?
- A hozzászóláshoz be kell jelentkezni
[quote:9143c86816="_ventura_"]es arrol tud valaki hogy a promptba kiiratni hogy hany uj/regi level van pl a postafiokban?
Mint némi szívás után megtudtam, bash-nél van egy PROMPT_COMMAND nevű környezeti változó, amit parancsként végrehajt minden prompt-kiíráskor. Úgyhogy ha van scripted, ami megszámolja a leveleidet, akkor kész vagy.
- A hozzászóláshoz be kell jelentkezni
Yessss :twisted: !
És a bash-alapú fork-bomb is működik:
[code:1:45a607dc84]
export PROMPT_COMMAND='xterm&'
[/code:1:45a607dc84]
Előtte valamelyik szöveges konzolon érdemes bekészíteni egy 'killall -9 xterm'-et...
- A hozzászóláshoz be kell jelentkezni
A bash promptba szeretném kiiratni azt, hogy honnan használom azt a shellt.
Azaz melyik ttyXtől, illetve távoli bejelentkezés esetén melyik ip címről (vagy dns név) jelentkeztem be arra gépre.
pl igy:
prygme@server1.net.cc temp tty1$
vagy
prygme@server1.net.cc temp dialup445-23.freestart.hu$
Hogyan lehet ezt beállítani? Valamelyik környezeti változóban szerepelnie kell imho, ahonnan fingernek is ki kell olvasnia az infot.
- A hozzászóláshoz be kell jelentkezni
[quote:22650bfac4="prygme"]A bash promptba szeretném kiiratni azt, hogy honnan használom azt a shellt.
Szerintem..
. a who feldarabolt kimenetéből állítsd össze az PS1 változót.. és rakd be
valamelyik ssh rc-be ami lefut bejelentkezéskor.
Fri
- A hozzászóláshoz be kell jelentkezni
[quote:38abdffc23="Frimen"][quote:38abdffc23="prygme"]A bash promptba szeretném kiiratni azt, hogy honnan használom azt a shellt.
Szerintem..
. a who feldarabolt kimenetéből állítsd össze az PS1 változót.. és rakd be
valamelyik ssh rc-be ami lefut bejelentkezéskor.
Fri
Ez akkor jó, ha az adott gépre csak egyszer vagyok bejelentkezve. De mi van akkor ha többször is? A who az összes logint számon tartja és szűrni csak user szitnen tudom. De hogyan tudhatom meg hogy az abba a shellba amibe épp írom honnan jelentkeztem be?
Van erre megfelelő who kapcsoló?, a manban nem találtam.
- A hozzászóláshoz be kell jelentkezni
who am i| awk '{print $2}'
- A hozzászóláshoz be kell jelentkezni
Jelentkezz be egy gépre többször, addki a who am i parancsot - az eredemény nem ugyanaz, ergo ezt használhatod
- A hozzászóláshoz be kell jelentkezni
[quote:cbccf52a0f="prygme"]A bash promptba szeretném kiiratni azt, hogy honnan használom azt a shellt.
Azaz melyik ttyXtől, illetve távoli bejelentkezés esetén melyik ip címről (vagy dns név) jelentkeztem be arra gépre.
pl igy:
prygme@server1.net.cc temp tty1$
vagy
prygme@server1.net.cc temp dialup445-23.freestart.hu$
Hogyan lehet ezt beállítani? Valamelyik környezeti változóban szerepelnie kell imho, ahonnan fingernek is ki kell olvasnia az infot.
rakd be a .bashrc-be/ .profiles-be, vagy ahonnet mindig lefut:[code:1:cbccf52a0f]
alias pr_tty='temp=`tty`; echo ${temp:5}'
PS1="\\u@\\h \\w `pr_tty`\\$ "
[/code:1:cbccf52a0f]
- A hozzászóláshoz be kell jelentkezni
[quote:792ba354f7="prygme"]
Ez akkor jó, ha az adott gépre csak egyszer vagyok bejelentkezve. De mi van akkor ha többször is? A who az összes logint számon tartja és szűrni csak user szitnen tudom. De hogyan tudhatom meg hogy az abba a shellba amibe épp írom honnan jelentkeztem be?
Van erre megfelelő who kapcsoló?, a manban nem találtam.
Hmm..
.. szerintem az who -m kapcsolo a barátod.
Fri
- A hozzászóláshoz be kell jelentkezni