LabHub

셸 스크립팅 · 반복과 함수 · 퀴즈

퀴즈: 반복과 함수

LabHub 에서 이어서 보기

문항 5개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. for f in /var/log/*.log 에서 매칭되는 파일이 하나도 없으면?

    1. 루프가 0번 실행된다
    2. 패턴 문자열 자체가 한 번 전달되어 루프가 1번 돈다
    3. 셸이 오류를 내고 스크립트가 종료된다
    4. 빈 문자열이 한 번 전달된다
  2. 판정 함수가 결과를 echo yes / echo no 로 출력하면 무엇이 불편해지나요?

    1. if 문에서 바로 쓸 수 없고 문자열 비교를 한 번 더 해야 한다
    2. 출력이 느려진다
    3. 함수 안에서 local 을 쓸 수 없다
    4. 표준에러로 리다이렉트할 수 없다
  3. 재시도 함수에서 명령을 다시 실행할 때 "$@" 를 써야 하는 이유는?

    1. $* 보다 빠르기 때문
    2. $@ 만 함수 안에서 쓸 수 있기 때문
    3. $* 는 bash 에서 지원하지 않기 때문
    4. $* 는 모든 인자를 하나의 문자열로 합쳐 공백이 든 인자가 쪼개지기 때문
  4. 함수 안에서 local 없이 변수를 만들면 어떤 문제가 생기나요?

    1. 전역 변수가 되어 호출한 쪽의 같은 이름 변수를 덮어쓴다
    2. 함수가 끝나면 변수가 사라진다
    3. 다음 호출에서 초기화되지 않는다
    4. 서브셸이 만들어져 값이 전달되지 않는다
  5. 1000줄 루프 안에서 $(echo "$v" | sed 's/a/b/') 를 ${v//a/b} 로 바꾸면?

    1. 프로세스 생성이 사라져 눈에 띄게 빨라진다
    2. 결과가 달라진다
    3. 메모리 사용량만 줄어든다
    4. 차이가 없다