opensuse
[Arriba] [Todas las Listas]

Re: [opensuse] Tipo diferente de pelar guiones

To: opensuse@xxxxxxxxxxxx
Subject: Re: [opensuse] Tipo diferente de pelar guiones
From: David Haller <dnh@xxxxxxxxxxxx>
Date: Sat, 24 Sep 2011 00:42:59 +0200
Delivered-to: opensuse@xxxxxxxxxxxxxxxxxxx
Delivery-date: Fri, 23 Sep 2011 18:45:57 -0400
Envelope-to: traductor@xxxxxxxxxxx
In-reply-to: <CAGpXXZK8ywaSinFqC155e=nFew2WZsPMiCM6_RRFsPChA0sNrQ@mail.gmail.com>
List-archive: <http://lists.opensuse.org/opensuse/>
List-help: <mailto:opensuse+help@opensuse.org>
List-owner: <mailto:opensuse+owner@opensuse.org>
List-post: <mailto:opensuse@opensuse.org>
List-subscribe: <mailto:opensuse+subscribe@opensuse.org>
List-unsubscribe: <mailto:opensuse+unsubscribe@opensuse.org>
Mail-followup-to: opensuse@xxxxxxxxxxxx
Mailing-list: contact opensuse+help@xxxxxxxxxxxx; run by mlmmj
Organization: What?
References: <4E7AED97.1000309@gmail.com> <a3vl779ppeknh8q9bns09rtr5st9tpf2h8@4ax.com> <4E7B346C.3020506@gmail.com> <84om771kl6phou5bfdpo5blmqg70026729@4ax.com> <CAGpXXZK8ywaSinFqC155e=nFew2WZsPMiCM6_RRFsPChA0sNrQ@mail.gmail.com>
User-agent: Mutt/1.5.21 (2010-09-15)
Hola,

En *Fri, 23 *Sep 2011, *Greg *Freemyer escribió:
>Supone tengo un "archivo" (no un guión) que tiene contenido:
>
>###
>PRUEBA_*DEV=/*dev/*sda3
>PRUEBA $de eco_*DEV
>###
>
>Si yo fuente que (. *filename) No creará un proceso nuevo.  El
>pelar él es capaz de procesar aquellas órdenes.  (Tiene un construido-en
>orden de eco.)

Corrige.

*xterm1> gato /*tmp/*t.*sh
PRUEBA_*DEV=/*dev/*sda3
PRUEBA $de eco_*DEV
/PRUEBA/de eco $del cubo_*DEV
*xterm1> eco $$
3236
*xterm2> *LANG=*C *strace -*f -*e proceso -*p 3236
*xterm1> . /*tmp/*t.*sh
/*dev/*sda3
/*dev/*sda3

[entretanto en *xterm2, *pruned al pertinente *syscalls]
clon(Proceso 24593 sujetado
[*pid 24593] *execve("/eco/de cubo", ["/eco/de cubo", "/*dev/*sda3"], [/* 125 *vars */]) = 0
Proceso 3236 *resumed
Proceso 24593 *detached
--- *SIGCHLD (el Niño salido) @ 0 (0) ---

*xterm1> /*tmp/*t.*sh
/*dev/*sda3
/*dev/*sda3

[entretanto en *xterm2, *pruned al pertinente *syscalls]
clon(Proceso 24635 sujetado
[*pid 24635] *execve("/*tmp/*t.*sh", ["/*tmp/*t.*sh"], [/* 125 *vars */]) = -1 *ENOEXEC (*Exec error de formato)
[*pid 24635] *execve("/cubo/*sh", ["/cubo/*sh", "/*tmp/*t.*sh"], [/* 125 *vars */]) = 0
[*pid 24635] clon(Proceso 24636 niño
sujetado_*stack=0, NIÑO=de CLON_de las banderas_*CLEARTID|NIÑO_de CLON_*SETTID|*SIGCHLD, niño_*tidptr=0*x7*f55576939*d0) = 24636
[*pid 24636] *execve("/eco/de cubo", ["/eco/de cubo", "/*dev/*sda3"], [/* 122 *vars */]) = 0
Proceso 24635 *resumed
Proceso 24636 *detached
[*pid 24635] --- *SIGCHLD (el Niño salido) @ 0 (0) ---
Proceso 3236 *resumed
Proceso 24635 *detached
--- *SIGCHLD (el Niño salido) @ 0 (0) ---

>Si ejecuto el encima (./*filename O justo sencillo *filename) entonces un nuevo
>pelar proceso de niño es invocado para correr las órdenes.
>
>Si modifico el archivo para decir:
>
>###
>PRUEBA_*DEV=/*dev/*sda3
>/eco/de cubo $PRUEBA_*DEV
>PRUEBA $de eco_*DEV
>###
>
>Entonces cuándo yo fuente el archivo, un proceso de niño (/eco/de cubo) es lanzado,
>pero sólo para aquello una orden, el primer y último es todavía procesado
>por el original pela.
>
>Y si ejecuto el archivo consigo ambos un niño pela proceso y un
>proceso /de eco/de cubo de nieto.

Correcto. Ve encima.  No *speculate, utiliza las herramientas ;)

-*dnh

-- 
encuentro todo *proselytisation para ser *misguided al menos. La manera lo veo, no
es el *Enlightened o el Escogido intentando salvarme o cualquiera, pero justo algunos
*meme intentando sobrevivir en la guerra grande para inmobiliaria de cerebro.
                                                          -- *Maarten *Wiltink
-- 
A *unsubscribe, *e-correo: *opensuse+unsubscribe@xxxxxxxxxxxx
Puesto que órdenes adicionales, *e-correo: *opensuse+help@xxxxxxxxxxxx


Hello,

On Fri, 23 Sep 2011, Greg Freemyer wrote:
>Suppose I have a "file" (not a script) that has content:
>
>###
>TEST_DEV=/dev/sda3
>echo $TEST_DEV
>###
>
>If I source that (. filename) it will not create a new process.  The
>shell itself is able to process those commands.  (It has a built-in
>echo command.)

Correct.

xterm1> cat /tmp/t.sh
TEST_DEV=/dev/sda3
echo $TEST_DEV
/bin/echo $TEST_DEV
xterm1> echo $$
3236
xterm2> LANG=C strace -f -e process -p 3236
xterm1> . /tmp/t.sh
/dev/sda3
/dev/sda3

[meanwhile on xterm2, pruned to the relevant syscalls]
clone(Process 24593 attached
[pid 24593] execve("/bin/echo", ["/bin/echo", "/dev/sda3"], [/* 125 vars */]) = 0
Process 3236 resumed
Process 24593 detached
--- SIGCHLD (Child exited) @ 0 (0) ---

xterm1> /tmp/t.sh
/dev/sda3
/dev/sda3

[meanwhile on xterm2, pruned to the relevant syscalls]
clone(Process 24635 attached
[pid 24635] execve("/tmp/t.sh", ["/tmp/t.sh"], [/* 125 vars */]) = -1 ENOEXEC (Exec format error)
[pid 24635] execve("/bin/sh", ["/bin/sh", "/tmp/t.sh"], [/* 125 vars */]) = 0
[pid 24635] clone(Process 24636 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f55576939d0) = 24636
[pid 24636] execve("/bin/echo", ["/bin/echo", "/dev/sda3"], [/* 122 vars */]) = 0
Process 24635 resumed
Process 24636 detached
[pid 24635] --- SIGCHLD (Child exited) @ 0 (0) ---
Process 3236 resumed
Process 24635 detached
--- SIGCHLD (Child exited) @ 0 (0) ---

>If I execute the above (./filename or just plain filename) then a new
>shell child process is invoked to run the commands.
>
>If I modify the file to say:
>
>###
>TEST_DEV=/dev/sda3
>/bin/echo $TEST_DEV
>echo $TEST_DEV
>###
>
>Then when I source the file, a child process (/bin/echo) is launched,
>but only for that one command, the first and last are still processed
>by the original shell.
>
>And if I execute the file I get both a child shell process and a
>grandchild /bin/echo process.

Correct. See above. Don't speculate, use the tools ;)

-dnh

-- 
I find all proselytisation to be misguided at least. The way I see it, it's
not the Enlightened or the Chosen trying to save me or anyone, but just some
meme trying to survive in the great war for brain real estate.
                                                          -- Maarten Wiltink
-- 
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx


<Anterior por Tema] Tema Actual [Siguiente por Tema>