la variable no se ve afectada en shell
Frecuentes
Visto 31 equipos
0
ls -l ${1}/${2}/${i}*| awk '{ print $5 " " $6 " " $7 " " $8 " " $9}' | ( while read Taille Mois Jour HeureOuAnnee Fichier
do
DateFichierEntreHierAujourdhui $Mois $Jour $HeureOuAnnee
if [ $? -eq 0 ]
then
NbFicREcu_links=`expr ${NbFicREcu_links} + 1`
fi
done
if [ $NbFicREcu_links -eq 0 ]
then
echo 'i am here 1'
echo ${i}
INT14_KO_FR=1
else
echo 'i am here 2'
fi
)
fi
echo "1- in the end of the fonction INT14_KO_FR=${INT14_KO_FR}"
Este fragmento de código detecta si carece de archivos específicos. De hecho, cuando entramos en el bloque que imprime 'Estoy aquí 1', quiero hacer INT14_KO_FR=1. Pero cuando salgo de este bucle, INT14_KO_FR siempre es 0, el valor inicial. El código ingresa en 'Estoy aquí 1' por 2 veces. Es muy raro, gracias chicos por su ayuda.
1 Respuestas
0
La tubería se ejecuta en un subshell, así que cualquiera las variables establecidas dentro no están dentro del alcance del código externo. Allí se mencionan diferentes soluciones alternativas, según las funciones de idioma con las que esté familiarizado y si necesita ser compatible con POSIX.
contestado el 19 de mayo de 14 a las 15:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas shell or haz tu propia pregunta.
¡Eso es realmente útil! Pero será mejor que no destruya el trabajo previo hecho por los demás. ¿Es posible hacer este afecto? con un tubo en una subcapa? - ZHE ZHAO
Si desea mantener el valor, debe almacenarlo en un archivo o usar una estructura diferente, como se explica en el último enlace. - l0b0