Van-e valami kulonbseg a
$ VMI="xx"
es a
$ export VMI="xx"
parancs/szintaxis viselkedese kozott?
Ha igen, mi az? Van olyan eset, ahol a sima valtozonev es az export elotagos valtozonev assign-olas maskepp viselkedik? A "man/tldr export" page-ek peldai mukodtek "export" kulcsszo nelkul is. Megis olyan sok 3rd party bash script ragaszkodik az "export" kulcsszohoz. Miert?
- 950 megtekintés
Hozzászólások
Az export a subprocess-nek is lattatja a variablet,mig a masik csak az adott processben el.
- A hozzászóláshoz be kell jelentkezni
Példa:
#!/bin/bash
#sc1.sh
t=100
export et=900
echo $$: $t $et
./sc2.sh
#!/bin/bash
#sc2.sh
echo $$: $t $et
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
Koszi, ez megadta a megfelelo peldat
- A hozzászóláshoz be kell jelentkezni
export nélkül kizárólag a shell-en belül látszik a változó és az értéke. export hatására minden ebből a shellből később indított alkalmazás is tud a változóról - ennek hatására aztán vagy történik valami, vagy nem.
$ POSIXLY_CORRECT=1
$ df /
$ export POSIXLY_CORRECT
$ df /
$ unset POSIXLY_CORRECT
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Az export annyit tesz, hogy exportálhatóvá tesz egy változót a shellen belül.
Ami azt jelenti, hogy amikor a shell elindít egy processzt, akkor a processz környezeti változói közé felveszi ezt a változót is az adott értékkel.
A szabványból idézve:
"The shell shall give the export attribute to the variables corresponding to the specified names, which shall cause them to be in the environment of subsequently executed commands."
http://pubs.opengroup.org/onlinepubs/009696799/utilities/export.html
- A hozzászóláshoz be kell jelentkezni
Egyreszt +1 az eddigiekre. Par kiegeszites:
Mondjuk amikor a PATH valtozot allitgatod .bashrc-bol, akkor nem az adott scripten beluli erteke a fontos, hanem hogy tovabboroklodjon.
A masik, hogy az export var=x forma basizm, regebbi shelleknel csak a var=x, es kulon export var mukodott. Ezert lathatsz sok helyen ilyet.
--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald
- A hozzászóláshoz be kell jelentkezni
Nem igazan bashism, a POSIX szabvanyban benne van az export name=value típusú használa az exportnak.
"If the name of a variable is followed by = word, then the value of that variable shall be set to word."
http://pubs.opengroup.org/onlinepubs/009696799/utilities/export.html
- A hozzászóláshoz be kell jelentkezni
Ok, akkor nem bash-specifikus dolog, rosszul emlekeztem. Mindenesetre regen volt, amin nem ment maskepp, azert latsz nehany scriptben ilyet.
--
Any A.I. smart enough to pass a Turing test is smart enough to know to fail it. -Ian McDonald
- A hozzászóláshoz be kell jelentkezni
Bár nem ez a kérdés, de a
set -a
vagy
set -o allexport
feleslegessé teszi az export használatát.
- A hozzászóláshoz be kell jelentkezni