Linux의 Bash 쉘 스크립트에서 파일을 생성하고, 문자열을 추가하는 방법을 소개합니다.
다음과 같은 경우, Bash에서 어떻게 구현해야하는지 알아보겠습니다.
1. 빈 파일 생성
touch
명령어는 빈 파일을 생성합니다.
다음 코드를 수행하면, 빈 파일이 생성되는 것을 확인할 수 있습니다.
#!/bin/bash
touch sample.txt
Output:
$ bash example.sh
$ ls sample.txt
sample.txt
$ cat sample.txt
2. echo로 파일 생성 및 문자열 추가
echo는 터미널에 문자열을 출력할 때 사용합니다.
echo에 >
연산자를 사용하여 문자열을 파일에 출력할 수 있습니다. 파일이 존재한다면 >
연산자는 파일의 내용을 모두 제거하고, 전달된 문자열만 저장되도록 합니다.
#!/bin/bash
echo "Hello, World" > sample.txt
다음과 같이 스크립트를 두번 실행하고 cat
으로 파일 내용을 출력해보면 Hello, World
만 파일에 저장된 것을 확인할 수 있습니다.
$ bash example.sh
$ bash example.sh
$ cat sample.txt
Hello, World
2.1 '>>' 연산자로 파일 마지막에 문자열 추가
echo에서 >>
연산자를 사용하면, 기존 파일의 내용은 삭제하지 않고, 파일의 끝에 문자열을 추가합니다. 즉, 기존 파일 내용들은 삭제되지 않고 문자열만 추가됩니다.
#!/bin/bash
echo "Hello, World" >> sample.txt
다음과 같이, 스크립트를 3번 실행하고 cat
으로 파일 내용을 출력해보면 Hello, World
가 3번 출력되었습니다. >>
는 기존 파일 끝에 문자열을 추가하기 때문입니다.
$ bash example.sh
$ bash example.sh
$ bash example.sh
$ cat sample.txt
Hello, World
Hello, World
Hello, World
3. tee 명령어로 파일에 문자열 추가
tee 명령어는 파일에 문자열을 저장하면서 터미널에 출력합니다.
#!/bin/bash
echo "Hello, World" | tee sample.txt
스크립트를 실행해보면 echo에 의해 터미널에 문자열이 출력되고, 파일에도 저장되는 것을 확인할 수 있습니다.
$ bash example.sh
Hello, World
$ cat sample.txt
Hello, World
3.1 tee 명령어로 기존 파일에 문자열 추가
만약 기존 파일은 삭제하지 않고, 파일의 끝에 문자열만 추가하려면 다음과 같이 -a
옵션을 사용하면 됩니다.
#!/bin/bash
echo "Hello, World" | tee -a sample.txt
Output:
$ bash example.sh
Hello, World
$ bash example.sh
Hello, World
$ cat sample.txt
Hello, World
Hello, World
3.2 tee를 사용할 때 결과 출력하지 않기
tee로 문자열을 추가할 때 터미널에 출력되지 않도록 하려면 > /dev/null
와 같이 출력을 표준출력(STDOUT)이 아닌 /dev/null
로 보낼 수 있습니다.
#!/bin/bash
echo "Hello, World" | tee sample.txt > '/dev/null'
Output:
$ bash example.sh
$ cat sample.txt
Hello, World
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)