기출 유형 연습 1회
쉘 스크립트 기본 개념을 중심으로 구성한 1회차 문제입니다. 난이도는 중 수준으로, 기본 문법과 명령어 이해를 확인합니다.
정답은 04절 풀이와 해설에서 확인합니다.
문제 1
다음 중 쉘 스크립트에서 현재 스크립트의 파일명을 담고 있는 특수변수로 올바른 것은 무엇인가.
$#$0$1$$
문제 2
다음 스크립트를 실행했을 때 출력되는 값으로 올바른 것은 무엇인가.
#!/bin/bashNUM=10echo $((NUM * 3 + 5))
NUM * 3 + 53530오류 발생
문제 3
다음 중 변수 VAR의 값이 빈 문자열인지 확인하는 조건식으로 올바른 것은 무엇인가.
[ -f "$VAR" ][ -z "$VAR" ][ -n "$VAR" ][ -e "$VAR" ]
문제 4
다음 스크립트에서 빈칸에 들어갈 내용으로 올바른 것은 무엇인가.
#!/bin/bashfor i in 1 2 3 4 5; do ___________ echo $idone
조건: i가 3일 때 출력을 건너뛰고 다음 반복으로 넘어가야 한다.
[ $i -eq 3 ] && breakif [ $i -eq 3 ]; then exit; fiif [ $i -eq 3 ]; then continue; fi[ $i -eq 3 ] && return
문제 5
다음 중 파일 권한 rwxr-x---을 숫자로 표현한 것으로 올바른 것은 무엇인가.
755750740760
문제 6
umask 027이 설정된 환경에서 새로 생성한 파일의 기본 권한으로 올바른 것은 무엇인가.
750644640755
문제 7
다음 명령어의 실행 결과로 올바른 것은 무엇인가.
echo "hello world" | wc -w
112112
문제 8
다음 중 표준 오류(stderr)를 /dev/null로 버리고 표준 출력만 파일에 저장하는 명령어로 올바른 것은 무엇인가.
command > file.txtcommand 2>/dev/null > file.txtcommand > file.txt 2>&1command 2>&1 > file.txt
문제 9
다음 스크립트의 출력으로 올바른 것은 무엇인가.
#!/bin/bashFRUITS=("apple" "banana" "cherry")echo ${#FRUITS[@]}
apple30apple banana cherry
문제 10
다음 중 /etc/passwd 파일에서 콜론(:)을 구분자로 하여 첫 번째 필드(사용자명)만 출력하는 명령어로 올바른 것은 무엇인가.
cat /etc/passwd | grep -f ":"cut -d: -f1 /etc/passwdcut -c1 /etc/passwdawk '/passwd/ {print $1}' /etc/passwd
문제 11
다음 if 문에서 [ -d /tmp ] 조건이 참이 되는 경우로 올바른 것은 무엇인가.
/tmp파일이 존재할 때/tmp가 디렉토리일 때/tmp에 읽기 권한이 있을 때/tmp가 심볼릭링크일 때
문제 12
다음 중 명령어 치환(command substitution) 문법으로 올바른 것을 모두 고른 것은 무엇인가.
가. $(date)
나. `date`
다. {date}
라. $[date]
- 가
- 가, 나
- 나, 다
- 가, 나, 라
문제 13
다음 스크립트를 실행하면 result.txt에 저장되는 내용으로 올바른 것은 무엇인가.
#!/bin/bashecho "first" > result.txtecho "second" >> result.txtecho "third" > result.txt
first second thirdfirst,second,third세 줄third한 줄- 빈 파일
문제 14
다음 중 쉘 스크립트에서 함수의 반환값을 얻는 올바른 방법은 무엇인가.
return뒤에 문자열을 쓴다$?로 종료 코드(0~255)를 받거나, 표준 출력과 명령어 치환을 활용한다echo return 값으로 반환하면 자동으로 변수에 저장된다- 함수명 뒤에
= 값으로 반환값을 지정한다
문제 15
다음 명령어 중 /home 디렉토리에서 최근 7일 이내에 수정된 .log 파일을 찾는 명령어로 올바른 것은 무엇인가.
find /home -name "*.log" -mtime -7find /home -name "*.log" -mtime +7ls /home -t *.log | head -7grep -r "*.log" /home --mtime 7
문제 16
다음 중 하드링크에 대한 설명으로 올바른 것은 무엇인가.
- 원본 파일을 삭제하면 하드링크도 접근 불가능해진다
- 다른 파일시스템에 있는 파일을 하드링크로 연결할 수 있다
- 하드링크는 원본과 동일한 inode를 공유한다
- 디렉토리에 하드링크를 만드는 것은 항상 가능하다
문제 17
다음 스크립트에서 변수 MSG에 저장되는 값으로 올바른 것은 무엇인가.
#!/bin/bashMSG=$(echo "Hello World" | tr '[:lower:]' '[:upper:]')echo $MSG
hello worldHELLO WORLDHello World- 오류 발생
문제 18
다음 중 while 루프를 올바르게 사용한 것은 무엇인가.
while [ $i -lt 5 ] do echo $i donewhile [ $i -lt 5 ]; do echo $i; donewhile $i -lt 5; echo $i; donewhile do [ $i -lt 5 ] echo $i done
문제 19
다음 명령어를 실행했을 때 출력되는 줄 수로 올바른 것은 무엇인가.
seq 1 10 | grep "[246810]"
- 4줄
- 5줄
- 6줄
- 10줄
문제 20
다음 중 쉘 스크립트에서 set -e 옵션의 효과로 올바른 것은 무엇인가.
- 스크립트 실행 전 구문을 검사한다
- 명령어가 0이 아닌 종료 코드를 반환하면 스크립트를 즉시 종료한다
- 변수를 사용 전에 반드시 선언해야 한다
- 파이프라인의 모든 명령어 종료 코드를 확인한다