Sziasztok!
A segítségeteket kérném az alábbi problémám megoldásában. A Google sajnos nem volt segítségemre, nem nagyon tudtam jól feltenni neki a kérdésem... Az ITT leírtak alapján jártam el, de egy érdekes eltérés van az output-ban, ami szerintem bash beállítási különbség lehet.
Ezt a parancsot szeretném lefuttatni az UHU linux 2.1-es pc-n bekapcsoláskor / belépéskor, tehát amint lehet, hogy el ne maradjon:
set | grep DBUS > /home/user/.DBUS_temp
ha belépés után gnome terminálban kiadom a parancsot, a .DBUS_temp fájl tartalma az alábbi lesz (és ez a jó):
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-uuGwxjD20P,guid=ab7c3d1d8659ae937218ca0050f7917e
Ezt akartam automatizálni a linkelt oldalon szereplők szerint, beletéve egy fájlba, majd futtathatóvá tenni, és a munkamenetek közé felvenni (bár ennél jobb megoldás is lehetne, ami még akkor lefut, amikor még nem lépett be egy felhasználó sem a grafikus felületre). Nem működött a dolog, nagy nehezen rájöttem, miért. A fájl tartalma az alábbi lett:
BASH_SOURCE=([0]="./programok/write_DBUS.sh")
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-uuGwxjD20P,guid=ab7c3d1d8659ae937218ca0050f7917e
_=./programok/write_DBUS.sh
A legfőbb kérdés: Hogy tudnám elérni, hogy a szkripttel létrejött fájl tartalma ugyan az legyen, mint a paranccsal létrejötté?
A helyzet az, hogy a telefonomról szeretnék SSH-zni a gépre, és kilőni a futó képernyővédőt, hogy képet készítsek a megjelenített képről. A használt PROGRAMmal tudok parancsokat is futtatni, de ha megpróbálom ott kiadni a set | grep DBUS > /home/user/.DBUS_temp
parancsot, akkor létrejön a fájl, de üres. Gondolom ez azért van, mert nem az SSH szerveren található értéket akarja bele írni, hanem az SSH kliens telefonét, s gondolom annak nincs olyan. Ha a fenti problémát sikerül megoldani, akkor tudnátok esetleg választ adni arra a kérdésre is, hogy jól gondolom-e, és ha igen, hogyan lehet úgy kiadni a parancsokat, hogy az teljesen úgy működjön, mintha az SSH szerver előtt ültem volna?
Előre is köszönöm a segítséget!
Kodmen
- 5596 megtekintés
Hozzászólások
echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >fileneve
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen a gyors választ, így remekül működik!
Erre a megoldásra nem jöttem volna rá, mivel erre felé nem keresgéltem.
Kodmen
-------------------
...a Linux filozófiája: "Keresd a veszélyt". Hopp! Nem így van. "Csináld magad!" Ez az! (Linus Torvalds)
- A hozzászóláshoz be kell jelentkezni
Csak hogy tudd: A többi sor azért kerül be, mert abban is szerepel a DBUS szó, a grep argumentuma. Ezért sokkal biztonságosabb a felettem szóló megoldása, mert ott nem fordulhat elő ilyen.
- A hozzászóláshoz be kell jelentkezni
Most, hogy mondod, tényleg rémlik, hogy a grep midíg felhozza önmagát, máskor csak az zavart meg, hogy a paracssorból kiadva nem jelent meg. Illetve érdekes módon a parancssorból kiadva a következő az eredmény:
~$ set | grep DBUS
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-uuGwxjD20P,guid=ab7c3d1d8659ae937218ca0050f7917e
_=./programok/write_DBUS.sh
A kimenet végén a kiemelt rész azért került oda, mert jelöli, hogy ... melyik szkript használja a változót (először az jutott eszembe, hogy melyik szzkript adja az értéket, de ez nyilván nem állná meg a helyét, ezért kicsit értetlenül állok a dolog előtt)?
Mivel nem értettem, próbálkoztam rájönni, mi lehet az ok, de idő közben eltűnt a kiemelt rész, szóval egy gonddal kevesebb :-)
Még az SSH kérdés érdekes, de lehet, hogy annak meg utána nézek a megfelelő fórumban.
Köszönöm a felvilágosítást!
Kodmen
-------------------
...a Linux filozófiája: "Keresd a veszélyt". Hopp! Nem így van. "Csináld magad!" Ez az! (Linus Torvalds)
- A hozzászóláshoz be kell jelentkezni
Az aláhúzás jel egy környezeti változó, ami ott éppen a futtató szkript fájlnevét jelenti, de csak akkor, ha az az első parancs a szkriptben.
- A hozzászóláshoz be kell jelentkezni
Aha!
Akkor értem, miért nem működött nekem, mikor másnak meg igen: én "kikommenteltem" előtte a sleep 120
részt, így ez lett az első parancs. Köszi! Sokat tanultam :-)
Kodmen
-------------------
...a Linux filozófiája: "Keresd a veszélyt". Hopp! Nem így van. "Csináld magad!" Ez az! (Linus Torvalds)
- A hozzászóláshoz be kell jelentkezni