리눅스
[리눅스] cat 명렁어로 여러줄 입력하기 (cat << EOF)
귀염둥이채원
2021. 4. 8. 20:42
리눅스에서 cat <<EOF에 대해 정리한다.
* Bash 쉘에서 HEREDOC 구문의 전형적인 형식
* 쉘스크립트에서 명령어를 help
* 직접 입력한 텍스트를 파일로 저장시 사용
* 주로 시작 및 종료를 알리는 키워드로 EOF(End of File) 사용하지만 다른것을 사용해도 된다.
# cat을 이용해 여러 줄을 입력하는 방법
$ sql=$(cat <<EOF
SELECT foo, bar FROM db
WHERE foo='baz'
EOF
)
$ echo $sql
SELECT foo, bar FROM db WHERE foo='baz'
# cat을 이용해 여러 줄을 파일(print.sh)로 저장
$ cat <<EOF > print.sh
#!/bin/bash
echo \$PWD
echo $PWD
EOF
$ cat print.sh
#!/bin/bash
echo $PWD
echo /root
# 쉘스크립트에서 print_usage에 사용하기
$ cat test.sh
function print_usage {
cat << EOF
>> Usage: ${0} <name> <date>
Required Arguments:
- name: set name
- date: set date
EOF
}
if [ $# -lt 2 ]; then
print_usage
exit 1
fi
$ ./test.sh kim
>> Usage: ./test.sh <name> <date>
Required Arguments:
- name: set name
- date: set date
# 참고사이트
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_cat_%E2%89%AAEOF
https://twpower.github.io/142-use-cat-for-multiline-stdin
https://stackoverflow.com/questions/2500436/how-does-cat-eof-work-in-bash