<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Chamadas_a_scripts._Exportar_variables</id>
	<title>Chamadas a scripts. Exportar variables - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Chamadas_a_scripts._Exportar_variables"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Chamadas_a_scripts._Exportar_variables&amp;action=history"/>
	<updated>2026-10-23T11:16:35Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Chamadas_a_scripts._Exportar_variables&amp;diff=62577&amp;oldid=prev</id>
		<title>Carrion: /* Experimentaación con source ou &quot;.&quot; */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Chamadas_a_scripts._Exportar_variables&amp;diff=62577&amp;oldid=prev"/>
		<updated>2017-10-06T18:41:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Experimentaación con source ou &amp;quot;.&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introdución==&lt;br /&gt;
*Antes de comezar cos scripts que creen o esqueleto das carpetas do noso dominio, imos explicar brevemente como funciona a execución de scripts en Linux e a chamada entre eles:&lt;br /&gt;
**Calquera proceso en Linux ten asignado un número de proceso.&lt;br /&gt;
**Cada proceso en Linux non comparte nada con outros procesos e ten as súas propias variables.&lt;br /&gt;
**As variables poden pasarse de procesos pai a procesos fillos con &amp;#039;&amp;#039;&amp;#039;export&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
**Cando se chama a un script, dependendo como se chame pódese crear un novo proceso fillo ou non.&lt;br /&gt;
**A consola é un proceso, que ten as súas variables e o seu número de proceso correspondente.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;sh script.sh&amp;#039;&amp;#039;&amp;#039;: sh é un intérprete de comandos que abre un novo proceso fillo para executar o script.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;source script.sh&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;source&amp;#039;&amp;#039; indica que se colla o contido do ficheiro &amp;#039;&amp;#039;script.sh&amp;#039;&amp;#039; e o execute como se as liñas se teclearan dende o proceso que chama ao script. Non se crea un proceso fillo, seguimos no mesmo proceso pai, só que o contido de &amp;#039;&amp;#039;script.sh&amp;#039;&amp;#039; foi traído ao proceso no que estamos.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;. script.sh&amp;#039;&amp;#039;&amp;#039;: é o mesmo que &amp;#039;&amp;#039;source script.sh&amp;#039;&amp;#039;&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;PATH&amp;#039;&amp;#039;&amp;#039;: variable de contorna que indica os directorios nos que buscar executables.&lt;br /&gt;
**Cando se inicia unha terminal ábrese un proceso que ten un id. este pódese consultar con &amp;#039;&amp;#039;&amp;#039;echo $$&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Imos agora con varios exemplos de todo o anterior:&lt;br /&gt;
&lt;br /&gt;
Abrimos un terminal e imos crear en &amp;#039;&amp;#039;/root/scripts&amp;#039;&amp;#039; que vai conter os scripts&lt;br /&gt;
 #Comezamos creando un directorio en dserver00 no que ter organizados tódolos scripts.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;mkdir scripts&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;cd scripts&lt;br /&gt;
&lt;br /&gt;
==Os procesos e o contorno de traballo onde se executa un script==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SCRIPT: pai.sh&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo Son o script pai&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
&lt;br /&gt;
CIDADE=Santiago&lt;br /&gt;
&lt;br /&gt;
echo Como pai defino a variable Cidade, con valor $CIDADE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Probas iniciais:&lt;br /&gt;
 #Comprobamos que numero de proceso ten o terminal no que imos lanzar os scripts.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $$&lt;br /&gt;
   3000&lt;br /&gt;
 &lt;br /&gt;
 #Comprobamos en que ruta estamos.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# pwd &lt;br /&gt;
   /root/scripts&lt;br /&gt;
 &lt;br /&gt;
 #Comprobamos que o ficheiro pai.sh existe e non ten permisos de execución&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# ls pai.sh -l&lt;br /&gt;
   -rw-r--r-- 1 root root 233 Mai 10 13:39 pai.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chamar a un script co inteprete sh===&lt;br /&gt;
&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh pai.sh&lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 3830&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
 &lt;br /&gt;
 #Observar como o número do proceso do terminal é 3000 e o nº de proceso mentres se executaba o script era 3830&lt;br /&gt;
 #Falamos en pasado porque ese proceso xa non existe unha vez que rematou o script. &lt;br /&gt;
 &lt;br /&gt;
 #Miramos no terminal que valor ten a variable CIDADE que está dentro do script e que se acaba de executar&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $CIDADE&lt;br /&gt;
 root@dserver00:~/scripts#&lt;br /&gt;
 &lt;br /&gt;
 #Non ten valor no proceso da terminal. Non existe esa variable no terminal,&lt;br /&gt;
 #pois unha vez que finalizou o script matouse o seu proceso asociado e &lt;br /&gt;
 #as variables que nese proceso se definiran.&lt;br /&gt;
&lt;br /&gt;
===Executar un script con source ou con &amp;quot;.&amp;quot;===&lt;br /&gt;
*Cando se chama a un script con source ou &amp;quot;.&amp;quot; é como se as liñas dese script se copiaran ao proceso actual, isto é, neste caso, na terminal:&lt;br /&gt;
&lt;br /&gt;
 #Antes de nada volvemos mirar no terminal que valor ten a variable CIDADE que está dentro do script&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $CIDADE&lt;br /&gt;
   root@dserver00:~/scripts#&lt;br /&gt;
 #Polo explicado antes, non existe esa variable. &lt;br /&gt;
 &lt;br /&gt;
 #Revisamos de novo o número de proceso do terminal, que era 3000&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $$&lt;br /&gt;
   3000&lt;br /&gt;
 &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# . pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 3000&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
 &lt;br /&gt;
 # Observar agora que non se creou un novo proceso para executar o script, pois dentro do proceso 3000&lt;br /&gt;
 # o que se fixo foi traer o contido do ficheiro e executar liña a liña dese ficheiro dentro do &lt;br /&gt;
 # proceso 3000 (O terminal)&lt;br /&gt;
 &lt;br /&gt;
 # Por tanto, que pasa agora coa variable cidade no terminal? no proceso 3000?&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $CIDADE &lt;br /&gt;
   Santiago&lt;br /&gt;
 &lt;br /&gt;
 #Pois que agora a variable CIDADE existe no proceso 3000 (a terminal) e ten valor.&lt;br /&gt;
&lt;br /&gt;
===Executar o script chamándoo directamente polo seu nome. A variable de contorno PATH ===&lt;br /&gt;
&lt;br /&gt;
 #Para iso o script ten que ser executable. Por agora non o é.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# ls pai.sh -l&lt;br /&gt;
   -rw-r--r-- 1 root root 233 Mai 10 13:39 pai.sh&lt;br /&gt;
  &lt;br /&gt;
 #Dámoslle permiso de execución ao script. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# chmod +x pai.sh&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# ls pai.sh -l&lt;br /&gt;
   -rwxr-xr-x 1 root root 233 Mai 10 13:45 pai.sh&lt;br /&gt;
 &lt;br /&gt;
  #Chamamos ao script dende dentro do propio directorio que o contén. Pero dinos que non existe.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# pai.sh&lt;br /&gt;
   -bash: pai.sh: command not found&lt;br /&gt;
 &lt;br /&gt;
 # Se miramos a variable PATH, vemos onde se buscan os ficheiros executables&lt;br /&gt;
 # se non se lles indica unha ruta como no caso anterior&lt;br /&gt;
 # A variable PATH é unha variable do sistema que herdan tódolos procesos fillos, entre eles a consola actual&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $PATH&lt;br /&gt;
   /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
 &lt;br /&gt;
 # Antes de indicar como poderíamos modificar esa variable imos ver que pasa se lle poñemos a ruta ao script.&lt;br /&gt;
 # Ruta absoluta:&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Poderíamos engadir á variable PATH&lt;br /&gt;
 # Ruta absoluta ao script&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# /root/scripts/pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 3852&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
 &lt;br /&gt;
 # Ruta relativa: dende o directorio actual no que estamos. &lt;br /&gt;
 # Lembrar que o directorio no que estamos sempre se denomina . (non confundir co . de source).&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# ./pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 3853&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago &lt;br /&gt;
 &lt;br /&gt;
 # En ámbolos dous casos o script execútase pois puxemos unha ruta para chegar até el.&lt;br /&gt;
 # Observar como se abriron novos procesos para executar o script en cada chamada.&lt;br /&gt;
 # No proceso 3000 (a terminal) seguimos tendo a variable CIDADE da execución anterior con source ou .&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
 #A variable PATH pódese modificar para a sesión actual do terminal (proceso 3000) como segue&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;PATH=$PATH:./ # Para engadir ao PATH actual o directorio no esteamos en cada momento &lt;br /&gt;
 # ou &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;PATH=$PATH:/root/scripts # Ruta absoluta a onde se atopa os scripts que desexamos executar.&lt;br /&gt;
 # Executamos agora o script simplemente chamándoo polo seu nome dende calquera sitio&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 3856&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago &lt;br /&gt;
 # Outro novo proceso.&lt;br /&gt;
 &lt;br /&gt;
 # Tan pronto se peche o terminal actual PATH volverá ao seu valor orixinal, perderanse os cambios realizados,&lt;br /&gt;
 # pois eses cambios pertencen ao proceso 3000.&lt;br /&gt;
 # Se desexamos facer permanentes eses valores podemos:&lt;br /&gt;
 ## Modificar a variable PATH en /etc/profile -&amp;gt; Afectaría a todo o sistema (Tódolos usuarios).&lt;br /&gt;
 ## Engadir PATH=$PATH:&amp;lt;directorios que se desexan&amp;gt; no fichiero .bashrc da carpeta persoal do usuario que &lt;br /&gt;
 ## desexa ter una PATH personalizado e que non afecte ao sistema nin a outros usuarios.&lt;br /&gt;
&lt;br /&gt;
==Chamadas entre procesos==&lt;br /&gt;
&lt;br /&gt;
===Chamadas aos scripts dende o terminal===&lt;br /&gt;
*Imos chamar a dous scripts. O segundo usa unha variable que define o primeiro, pero imos chamalos de forma independente dende a consola.&lt;br /&gt;
&lt;br /&gt;
*Imos saír do terminal e volver entrar, para comezar de novo e que &amp;#039;&amp;#039;PATH&amp;#039;&amp;#039; non teñan en conta os cambios anteriores, nin exista a variable &amp;#039;&amp;#039;CIDADE&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
*Creamos un novo script en &amp;#039;&amp;#039;/root/scripts&amp;#039;&amp;#039; e situámonos nese directorio.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SCRIPT: fillo.sh&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo Son o script fillo&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
echo Meu pai define a variable Cidade, con valor $CIDADE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Experimentación con sh====&lt;br /&gt;
 # O novo terminal ten o número de proceso 4000&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# echo $$&lt;br /&gt;
   4000&lt;br /&gt;
&lt;br /&gt;
 #Chamamos ao proceso pai e execútase dentro dun novo proceso, &lt;br /&gt;
 #que se destrúe ao rematar o script, e por tanto as variables que se usaran. &lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4023&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
&lt;br /&gt;
 # Chamamos ao proceso fillo e execútase dentro dun novo proceso que se destrúe ao saír. &lt;br /&gt;
 # Non pode coller o valor da variable CIDADE porque esa variable era do proceso anterior (4023) e &lt;br /&gt;
 # destruíuse cando rematou o script/anterior.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh fillo.sh &lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4024&lt;br /&gt;
   Como pai defino a variable Cidade, con valor&lt;br /&gt;
&lt;br /&gt;
====Experimentación con source ou &amp;quot;.&amp;quot;====&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# . pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4000&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
 # Neste caso o contido de pai.sh executouse liña a liña dentro do proceso 4000 (a terminal).&lt;br /&gt;
 &lt;br /&gt;
 # Chamamos ao proceso fillo.sh co intérprete sh.&lt;br /&gt;
 # Pero vemos que se crea un novo proceso (4027) que non sabe cales son as variables&lt;br /&gt;
 # que hai no proceso 4000. Por iso non sabe o valor da variable CIDADE&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh fillo.sh &lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4027&lt;br /&gt;
   Meu pai define a variable Cidade, con valor &lt;br /&gt;
 &lt;br /&gt;
 # Chamamos ao proceso fillo.sh dende o terminal con source ou .&lt;br /&gt;
 # Co cal, estamos executando liña a liña dentro do proceso 4000. &lt;br /&gt;
 # E como antes fixemos o mesmo con pai.sh, &lt;br /&gt;
 # agora a variable CIDADE ten senso dentro do proceso 4000 (terminal)&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# . fillo.sh &lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4000&lt;br /&gt;
   Meu pai define a variable Cidade, con valor Santiago.&lt;br /&gt;
&lt;br /&gt;
==Chamar a un script dende outro script: Export==&lt;br /&gt;
*Para non interferir nesta última experimentación que imos facer, volvemos pechar o terminal e volvemos entrar.&lt;br /&gt;
*Para que a variable teña CIDADE, definida dentro de &amp;#039;&amp;#039;pai.sh&amp;#039;&amp;#039;, teña senso dentro de fillo.sh imos facelo de 2 maneiras:&lt;br /&gt;
&lt;br /&gt;
===Chamar dende o fillo ao pai===&lt;br /&gt;
&lt;br /&gt;
*Primeiro imos chamar dende &amp;#039;&amp;#039;fillo.sh&amp;#039;&amp;#039; ao script &amp;#039;&amp;#039;pai.sh&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
====Chamar de fillo a pai: usando o intérprete sh====&lt;br /&gt;
*Modificamos o contido dos script fillo.sh como segue:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SCRIPT: fillo.sh&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;3,4&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
sh pai.sh&lt;br /&gt;
echo =======================================&lt;br /&gt;
&lt;br /&gt;
echo Son o script fillo&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
echo Meu pai define a variable Cidade, con valor $CIDADE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*A liña 3 tamén podería ser &amp;#039;&amp;#039;&amp;#039;./pai.sh&amp;#039;&amp;#039;&amp;#039; se pai.sh tivera permisos de execución. Ou &amp;#039;&amp;#039;&amp;#039;pai.sh&amp;#039;&amp;#039;&amp;#039; se ademais dos permisos estivera o directorio no PATH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Experimentación&lt;br /&gt;
 # Dende o terminal chamamos a fillo.sh &lt;br /&gt;
 # Créase un novo proceso para ese script. (4051)&lt;br /&gt;
 # O script fillo.sh chama a script pai.sh que define a variable CIDADE pero que a destrúe &lt;br /&gt;
 # tan pronto como remata a súa execución e devolve o control a fillo.sh que non sabe nada desa variable.&lt;br /&gt;
 # Observar polos números de proceso que se crea antes o fillo cao pai.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh fillo.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4050&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
   Chamando a fillo.sh&lt;br /&gt;
   =======================================&lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4051&lt;br /&gt;
   Meu pai define a variable Cidade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Chamar de fillo a pai: usando source ou &amp;quot;.&amp;quot;====&lt;br /&gt;
*Modificamos o contido dos script fillo.sh como segue:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SCRIPT: fillo.sh&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;3,4&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
. ./pai.sh  #é o mesmo que source ./pai.sh&lt;br /&gt;
echo =======================================&lt;br /&gt;
&lt;br /&gt;
echo Son o script fillo&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
echo Meu pai define a variable Cidade, con valor $CIDADE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*A liña 3 tamén podería ser &amp;#039;&amp;#039;&amp;#039;. pai.sh&amp;#039;&amp;#039;&amp;#039;, pero cando se chamase ao script, no cando de &amp;#039;&amp;#039;&amp;#039;sh fillo.sh&amp;#039;&amp;#039;&amp;#039; deberamos chamalo como &amp;#039;&amp;#039;&amp;#039;. fillo.sh&amp;#039;&amp;#039;&amp;#039; (ou source fillo.sh). Neste caso o contorno de execución sería o do terminal, executaríase todo co mesmo número de proceso.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Experimentación&lt;br /&gt;
 # Dende o terminal chamamos a fillo.sh &lt;br /&gt;
 # Créase un novo proceso para ese script. &lt;br /&gt;
 # O script fillo.sh executa as liñas de pai.sh como se as tivera el tecleadas no propio script, pois &lt;br /&gt;
 # pai.sh é chamado con source ou &amp;quot;.&amp;quot;&lt;br /&gt;
 # Observar en que número de proceso se executan os dous scripts.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh fillo.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4060&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
   Chamando a fillo.sh&lt;br /&gt;
   =======================================&lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4060&lt;br /&gt;
   Meu pai define a variable Cidade, con valor Santiago&lt;br /&gt;
&lt;br /&gt;
===Chamar dende o pai ao fillo: export===&lt;br /&gt;
*Veremos tamén dúas formas&lt;br /&gt;
*No segundo caso exportaremos unha variable do pai ao fillo.&lt;br /&gt;
&lt;br /&gt;
====Chamar de pai a fillo: usando o intérprete sh====&lt;br /&gt;
*Modificamos o contido dos script &amp;#039;&amp;#039;&amp;#039;fillo.sh&amp;#039;&amp;#039;&amp;#039; como segue (Eliminamos a liña que chamaba ao script pai.sh):&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SCRIPT: fillo.sh&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo =======================================&lt;br /&gt;
echo Son o script fillo&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
echo Meu pai define a variable Cidade, con valor $CIDADE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Modificamos o contido do script &amp;#039;&amp;#039;&amp;#039;pai.sh&amp;#039;&amp;#039;&amp;#039; como segue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;10,11&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo Son o script pai&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
&lt;br /&gt;
CIDADE=Santiago&lt;br /&gt;
&lt;br /&gt;
echo Como pai defino a variable Cidade, con valor $CIDADE&lt;br /&gt;
&lt;br /&gt;
echo Chamando a fillo.sh&lt;br /&gt;
sh fillo.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Experimentación&lt;br /&gt;
 # Dende o terminal chamamos a pai.sh &lt;br /&gt;
 # Créase un novo proceso para ese script. (4070)&lt;br /&gt;
 # O script pai.sh chama a script fillo.sh e crease un novo proceso (4071), &lt;br /&gt;
 # Pero a variable CIDADE é so do contorno do pai, non dos fillos. &lt;br /&gt;
 # Observar polos números de proceso cal se crea antes.&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4070&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
   Chamando a fillo.sh&lt;br /&gt;
   =======================================&lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4071&lt;br /&gt;
   Meu pai define a variable Cidade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Chamar de pai a fillo: exportando variables====&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Finalmente: &lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Exportar unha variable do pai aos fillos: &amp;quot;export&amp;quot;&lt;br /&gt;
*Modificamos o contido do script &amp;#039;&amp;#039;&amp;#039;pai.sh&amp;#039;&amp;#039;&amp;#039; como segue:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;6,7,10,11&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo Son o script pai&lt;br /&gt;
echo Teño o proceso número: $$&lt;br /&gt;
&lt;br /&gt;
CIDADE=Santiago&lt;br /&gt;
export CIDADE # As 2 liñas poderían quedar nunha soa: export CIDADE=Santiago&lt;br /&gt;
&lt;br /&gt;
echo Como pai defino a variable Cidade, con valor $CIDADE&lt;br /&gt;
&lt;br /&gt;
echo Chamando a fillo.sh&lt;br /&gt;
sh fillo.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Experimentación&lt;br /&gt;
 # Dende o terminal chamamos a pai.sh &lt;br /&gt;
 # Créase un novo proceso para ese script. (4080)&lt;br /&gt;
 # O script pai.sh chama a script fillo.sh e crease un novo proceso (4081), &lt;br /&gt;
 # Pero antes de chamalo exportou a variable CIDADE, co cal esta vai estar dispoñible para&lt;br /&gt;
 # tódolos scripts que se chamen dende o pai, aínda que os fillos se executen noutro proceso distinto.&lt;br /&gt;
 # Observar polos números de proceso cal se crea antes, e como o proceso fillo ten acceso á variable CIDADE&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;root@dserver00:~/scripts# sh pai.sh &lt;br /&gt;
   Son o script pai&lt;br /&gt;
   Teño o proceso número: 4080&lt;br /&gt;
   Como pai defino a variable Cidade, con valor Santiago&lt;br /&gt;
   Chamando a fillo.sh&lt;br /&gt;
   =======================================&lt;br /&gt;
   Son o script fillo&lt;br /&gt;
   Teño o proceso número: 4081&lt;br /&gt;
   Meu pai define a variable Cidade, con valor Santiago&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[Usuario:antonio| Antonio de Andrés Lema]] e [[Usuario:Carrion| Carlos Carrión Álvarez]]&lt;/div&gt;</summary>
		<author><name>Carrion</name></author>
	</entry>
</feed>