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}"
这段代码检测是否缺少特定文件。事实上,当我们进入打印'我在这里1'的区块时,我想做INT14_KO_FR = 1。但是当我退出这个循环时,INT14_KO_FR始终为0,即初始值。代码输入'我在这里1'2次。这真的很奇怪,谢谢你们的帮助
答案 0 :(得分:0)
管道在subshell中运行,因此任何variables set inside it are not in scope for the outside code。这里提到了不同的解决方法,具体取决于您熟悉的语言功能以及是否需要与POSIX兼容。