linux bash 스크립트에서 문제가 있어 질문드립니다.

trymp의 이미지

find . -name "*.txt" -exec ls {} \; | while read test_path
do
  test_file=${test_path/%txt/*}
  ls -al  $test_file | awk '{print $5}' | while read fsize
  do
    f_sum=`expr $f_sum + $fsize`
  done
  echo $f_sum
 
done

txt 파일과 이름이 똑같은 파일의 사이즈 총합을 구하고 있습니다.

근데 마지막에 누적시킨 f_sum 변수값이 그냥 null 이네요.

while 내에서는 값이 정상으로 찍히는데 마지막에서는 f_sum 값이 null 이 되어버리나요?

고수님들의 조언 부탁드립니다.

세벌의 이미지

scope 관련 있는 것 아닐까요?

bushi의 이미지

pipe 로 연결하면 개별 프로세스로 분리됩니다.

morolty의 이미지

이 코드만 봐서는

f_sum=`expr $f_sum + $fsize`

부분이 f_sum=`expr NULL + integer` 형식이 되어버리네요. f_sum을 0으로 초기화 하는 부분을 집어넣으셔야 할듯 싶어요