기출문제/정보처리기사

2020년 4회 정보처리기사 기출문제 66번

엉클지니 2025. 4. 3. 18:42

66. 다음 쉘 스크립트의 의미로 옳은 것은?

wow 사용자가 로그인한 경우에만 반복문을 수행한다.

 wow 사용자가 로그인할 때까지 반복문을 수행한다.

wow 문자열을 복사한다.

wow 사용자에 대한 정보를 무한 반복하여 출력한다.

 

 

 

 주어진 쉘 스크립트에 대해 자세히 분석해 보겠습니다:

until who | grep wow 
do 
  sleep 5 
done

1. who 명령어

  • who 명령어는 현재 시스템에 로그인한 사용자의 목록을 출력합니다. 출력되는 정보에는 사용자의 이름, 로그인한 터미널, 로그인 시간 등이 포함됩니다.
  • 예시 출력:
  • user1 tty1 2025-04-03 08:15 wow tty2 2025-04-03 09:00 user2 tty3 2025-04-03 10:00

2. grep wow

  • grep 명령어는 입력된 텍스트에서 특정 패턴을 찾는 명령어입니다.
  • grep wow는 who 명령어의 출력에서 "wow"라는 문자열을 포함하는 줄을 찾아냅니다. 이 예시에서 "wow" 사용자가 로그인 중이라면, grep wow는 해당 사용자 정보를 포함한 줄을 출력합니다.
  • 예시에서 who 명령어의 출력에 "wow" 사용자가 로그인했으므로 grep wow는 다음과 같은 출력을 반환합니다:
  • wow tty2 2025-04-03 09:00

3. until 구문

  • until 구문은 주어진 조건이 거짓일 때까지 반복문을 실행하는 구문입니다.
  • 즉, until 구문은 조건이 거짓일 때 반복하고, 조건이 이 되면 반복을 종료합니다.
  • 예를 들어:
  • until [ some_condition ] do # 반복 수행할 작업 done
  • 주어진 스크립트에서는 until who | grep wow라는 조건이 있습니다. 이는 who | grep wow 명령어의 출력이 빈 문자열일 때까지 반복을 실행합니다. 즉, "wow" 사용자가 로그인하지 않았을 때 반복문을 계속 실행합니다.

4. sleep 5

  • sleep 5는 5초 동안 실행을 일시 정지하는 명령어입니다. 즉, 반복문이 실행될 때마다 5초간 대기하게 됩니다.

5. 전체 흐름

  • 전체 스크립트는 "wow"라는 사용자가 로그인할 때까지 계속해서 반복합니다.
  • until who | grep wow 명령어가 빈 출력을 반환하는 한, 즉 "wow" 사용자가 로그인하지 않았다면 반복문은 계속 실행됩니다. 이때 sleep 5로 5초마다 대기하면서 조건을 계속 확인합니다.
  • "wow" 사용자가 로그인하면 who | grep wow가 해당 사용자 정보를 출력하게 되고, until 조건이 으로 바뀌면서 반복문이 종료됩니다.

6. 정리

  • "wow" 사용자가 로그인할 때까지 5초마다 로그인 사용자 목록을 확인하고, "wow" 사용자가 로그인하면 반복문을 종료합니다.
  • "wow" 사용자가 로그인하지 않으면 반복문이 계속 실행되고, "wow" 사용자가 로그인한 후에는 반복문이 종료됩니다.

7. 정답

  • 주어진 스크립트의 동작 방식에 따르면:
    • "wow" 사용자가 로그인할 때까지 반복문을 수행하므로 정답은 ❷ wow 사용자가 로그인할 때까지 반복문을 수행한다.

이 스크립트의 주요 포인트는 until 구문과 조건이 거짓일 때 계속 반복된다는 점입니다. who와 grep을 조합하여 "wow" 사용자가 로그인한 상태를 확인하는 방식으로 동작하고, 그 사용자가 로그인한 순간에 반복문을 종료합니다.

반응형