Portál AbcLinuxu, 16. května 2022 10:12



Dotaz: Jak spustit příkaz v jiném bash

3.12.2021 17:24 dnes
Jak spustit příkaz v jiném bash
Přečteno: 435×
Odpovědět | Admin
Ahoj, potřeboval bych spustit příkaz v jiném bash, nevím jak se to odborně jmenuje. Mám script v souboru, ten spustím ./cesta/k/memu/scriptu.sh a v tomto souboru mám desítky proměnných jejichž názvy jsou úplně běžné, když ale z tohoto souboru zavolám jiný můj script, tak obsahuje převážně totožné názvy proměnných, což je špatné. Můžu ten script z toho souboru spustit v jiném bash, aby na sebe proměnné neviděly? Díky

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.12.2021 18:06 jiwopene | skóre: 30 | blog: Od každého trochu…
Rozbalit Rozbalit vše Re: Jak spustit příkaz v jiném bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebylo by špatné nám ty skripty ukázat. (Alespoň zčásti, až víme, o čem je řeč.)

Každý běžící proces má přiřazenou sadu proměnných prostředí, které jsou (většinou) procesům, které ten proces spouští přiřazené také. Pokud vytvoříte v bashi proměnnou (např. promenna=42), tato proměnná není proměnnou prostředí a proto není předána dalším spouštěným procesům. Pokud proměnnou „vyexportujete“ (export promenna, nebo v kombinaci s přiřazením export promenna=42), stává se proměnnou prostředí a nově spuštěné procesy na ni uvidí.

Naopak v bashi platí to, že každá proměnná prostředí se při startu interpretru bashe stává proměnnou ve skriptu.
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
3.12.2021 19:46 debian+ | skóre: 30 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak spustit příkaz v jiném bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžu ten script z toho souboru spustit v jiném bash, aby na sebe proměnné neviděly?
Áno. Viac man env.
debian.plus@protonmail.com
4.12.2021 07:13 Andrej | skóre: 49 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Jak spustit příkaz v jiném bash
Odpovědět | | Sbalit | Link | Blokovat | Admin

V jistém smyslu na sebe neuvidí od přírody, protože fracek nemá jak změnit proměnné fotra.

Pokud chceš nějakou silnější izolaci, tady je nápověda:

exec env & wait     # vyblije toho spoustu, klasická šavle s knedlíčky
exec -c env & wait  # nevyblije nic; kde nic není, tam ani čert neblije
6.12.2021 09:54 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak spustit příkaz v jiném bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ve spouštěném skriptu se nachází pouze kopie proměnných. Ničemu tedy nevadí, pokud si ty proměnné přepíšeš vlastními daty.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.