title: Shell variables set inside while loop not visible outside of it
body: <p>I am trying to find the pathname with the most characters in it. There might be better ways to do this. But I would like to know why this problem occurs. </p>
  
  <pre><code>LONGEST_CNT=0
  find samples/ | while read line
  do
      line_length=$(echo $line | wc -m)
      if [[ $line_length -gt $LONGEST_CNT ]] 
      then
          LONGEST_CNT=$line_length
          LONGEST_STR=$line
      fi
  done
  
  echo $LONGEST_CNT : $LONGEST_STR
  </code></pre>
  
  <p>It somehow always returns:</p>
  
  <pre><code>0 :
  </code></pre>
  
  <p>If I print the results for debugging inside the while loop the values are correct. So why bash does not make these variables global? </p>