반복문의 출력값을 새로운 파일에 기록하기 위해서는
done
옆에 리다이렉트를 수행하면 됩니다.
특정 폴더 밑의 모든 파일들을 하나씩 조회하면서 해당 파일이 디렉토리인지 파일인지 알아보는 스크립트를 작성했습니다.
$ cat test1
#!/bin/bash
for file in $HOME/devops/Script/*
do
if [ -d $file ]
then
echo "$file is directory"
else
echo "$file is directory"
fi
done > output.txt
$ ./test1
스크립트를 실행하면 echo
문에 대한 출력이 나오지 않습니다.
output.txt
파일의 내용을 보면 아래와 같이 echo
의 출력값이 리다이렉트되어 기록되어 있는 것을 확인할 수 있습니다.
$ cat output.txt
/home/hyeob/devops/Script/= is directory
/home/hyeob/devops/Script/~ is directory
/home/hyeob/devops/Script/환경_변수.md is directory
/home/hyeob/devops/Script/output.txt is directory
/home/hyeob/devops/Script/states is directory
/home/hyeob/devops/Script/test1 is directory
/home/hyeob/devops/Script/test2 is directory