쉘 스크립트를 사용하여 간단한 웹 게시판을 구현할 수 있습니다. 이 스크립트는 텍스트 파일을 데이터베이스로 사용하여 게시글을 저장하고, 조회, 추가, 삭제 기능을 제공합니다. 이 스크립트는 `bash`를 사용하여 작성되었으며, 명령어 기반 인터페이스를 제공합니다.
### 간단한 쉘스크립트 게시판
#### 1. 스크립트 설명
- **게시판 데이터 파일:** `posts.txt` 파일에 저장됩니다.
- **각 기능:** 게시글 추가, 조회, 삭제, 전체 조회.
#### 2. 소스 코드
```bash
#!/bin/bash
# 게시판 데이터 파일
DATA_FILE="posts.txt"
# 게시판 초기화
init_board() {
if [ ! -f $DATA_FILE ]; then
touch $DATA_FILE
fi
}
# 게시글 목록 보기
list_posts() {
if [ ! -s $DATA_FILE ]; then
echo "게시글이 없습니다."
return
fi
echo "ID | 제목"
echo "-------------------------"
while IFS="|" read -r id title content; do
echo "$id | $title"
done < $DATA_FILE
}
# 게시글 상세 보기
view_post() {
read -p "조회할 게시글 ID: " id
while IFS="|" read -r post_id title content; do
if [ "$post_id" == "$id" ]; then
echo "제목: $title"
echo "내용: $content"
return
fi
done < $DATA_FILE
echo "해당 ID의 게시글을 찾을 수 없습니다."
}
# 게시글 추가
add_post() {
read -p "제목: " title
read -p "내용: " content
last_id=$(tail -1 $DATA_FILE | cut -d'|' -f1)
if [ -z "$last_id" ]; then
last_id=0
fi
new_id=$((last_id + 1))
echo "$new_id|$title|$content" >> $DATA_FILE
echo "게시글이 추가되었습니다."
}
# 게시글 삭제
delete_post() {
read -p "삭제할 게시글 ID: " id
if ! grep -q "^$id|" $DATA_FILE; then
echo "해당 ID의 게시글을 찾을 수 없습니다."
return
fi
grep -v "^$id|" $DATA_FILE > temp.txt && mv temp.txt $DATA_FILE
echo "게시글이 삭제되었습니다."
}
# 메인 메뉴
main_menu() {
echo "1) 게시글 목록 보기"
echo "2) 게시글 상세 보기"
echo "3) 게시글 추가"
echo "4) 게시글 삭제"
echo "5) 종료"
}
# 프로그램 시작
init_board
while true; do
main_menu
read -p "선택: " choice
case $choice in
1) list_posts ;;
2) view_post ;;
3) add_post ;;
4) delete_post ;;
5) exit ;;
*) echo "잘못된 선택입니다." ;;
esac
done
```
#### 3. 기능 설명
- **게시글 목록 보기 (`list_posts`)**
- `posts.txt` 파일을 읽어 게시글 ID와 제목을 출력합니다.
- 게시글이 없을 경우 메시지를 출력합니다.
- **게시글 상세 보기 (`view_post`)**
- 사용자에게 게시글 ID를 입력받아 해당 게시글의 제목과 내용을 출력합니다.
- 해당 ID의 게시글이 없으면 메시지를 출력합니다.
- **게시글 추가 (`add_post`)**
- 사용자에게 제목과 내용을 입력받아 `posts.txt` 파일에 저장합니다.
- 게시글 ID는 자동으로 증가합니다.
- **게시글 삭제 (`delete_post`)**
- 사용자에게 게시글 ID를 입력받아 해당 게시글을 삭제합니다.
- 해당 ID의 게시글이 없으면 메시지를 출력합니다.
#### 4. 사용 방법
1. 스크립트를 파일로 저장합니다. 예를 들어, `bbs.sh`로 저장합니다.
2. 스크립트에 실행 권한을 부여합니다: `chmod +x bbs.sh`
3. 스크립트를 실행합니다: `./bbs.sh`
### 실행 예시
```sh
$ ./bbs.sh
1) 게시글 목록 보기
2) 게시글 상세 보기
3) 게시글 추가
4) 게시글 삭제
5) 종료
선택: 3
제목: 첫 게시글
내용: 안녕하세요, 이것은 테스트 게시글입니다.
게시글이 추가되었습니다.
1) 게시글 목록 보기
2) 게시글 상세 보기
3) 게시글 추가
4) 게시글 삭제
5) 종료
선택: 1
ID | 제목
-------------------------
1 | 첫 게시글
```
이 예제 스크립트는 기본적인 기능만 제공합니다. 실제 게시판의 다양한 요구 사항에 맞춰 확장하거나 개선할 수 있습니다.