Linux와 커맨드 라인 기초

$ name=world
$ echo 'Hello $name'
$ echo "Hello $name"

위의 명령을 순서대로 실행했을 때, 두 echo의 출력으로 올바른 것은?

  1. A첫 번째는 Hello world, 두 번째는 Hello $name
  2. B첫 번째도 두 번째도 Hello world
  3. C첫 번째는 Hello $name, 두 번째는 Hello world
정답과 해설 보기

정답: C. 첫 번째는 Hello $name, 두 번째는 Hello world

셸(shell)에서는 작은따옴표('…')로 감싼 부분은 쓴 그대로의 문자열이 되며, $name 같은 변수는 확장되지 않습니다. 큰따옴표("…") 안에서는 변수가 확장되므로, 두 번째는 Hello world가 됩니다. 큰따옴표는 변수의 값에 공백이 포함되어 있어도 하나의 인수로 다루게 하는 데에도 사용합니다. 또한 대입 'name=world'에서는 = 앞뒤에 공백을 넣을 수 없습니다.

이 분야 연습하기 분야로 돌아가기

Linux와 커맨드 라인 기초의 다른 문제

  1. 위와 같이 스크립트 s.sh를 인수를 붙여 실행했을 때의 출력으로 올바른 것은?
  2. 셸 스크립트에서 위의 if 조건이 참이 되는 경우로 올바른 것은?
  3. 위의 조작 후에 디렉터리에 있는 파일로 올바른 것은?
  4. 현재 디렉터리에 있는, 실행 권한이 붙은 스크립트 run.sh를 'run.sh'라고 입력하여 실행하려고 하면 'command not found'가 되고, './run.sh'라고 입력하면 실행할 수 있었다. 이유로 올바른 것은?
  5. 위의 명령을 순서대로 실행했을 때, 두 bash -c의 출력의 조합으로 올바른 것은?