Linux와 커맨드 라인 기초

$ X=1
$ bash -c 'echo "[$X]"'
$ export X
$ bash -c 'echo "[$X]"'

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

  1. A[]와 [1]
  2. B[1]과 [1]
  3. C[]와 []
정답과 해설 보기

정답: A. []와 [1]

'X=1'로 대입만 한 변수는 셸 변수(shell variable)로, 그 셸 안에서만 쓸 수 있으며 시작한 자식 프로세스(여기서는 새 bash)에는 전달되지 않습니다. export를 붙이면 환경 변수가 되어, 그 후에 시작하는 자식 프로세스에 값이 이어집니다. 따라서 첫 번째는 [], 두 번째는 [1]이 됩니다. 작은따옴표로 감싸고 있으므로, $X는 부모 셸이 아니라 자식 bash 안에서 확장됩니다.

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

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

  1. Linux의 패키지 관리 시스템(Debian 계열의 apt, Red Hat 계열의 dnf 등)의 주된 역할로 올바른 것은?
  2. systemd를 사용하는 Linux에서, 서비스 license.service에 대한 'systemctl start license.service'와 'systemctl enable license.service'의 차이로 올바른 것은?
  3. cron에 '30 2 * * 1 /home/alice/backup.sh'를 등록했다. backup.sh가 실행되는 시점으로 올바른 것은?
  4. Linux 서버에서 '디스크 여유 공간이 적다'는 경고가 나왔다. 파일 시스템별 사용량과 여유 용량을 조사하는 명령과, 디렉터리 안의 파일이 사용하는 용량을 합계하여 조사하는 명령의 조합으로 올바른 것은?
  5. 자신의 PC에서 ssh-keygen을 사용하여 공개 키 인증용 키 쌍을 만들고, 서버 server1에 비밀번호 없이 ssh로 접속할 수 있게 하고 싶다. 키를 두는 방법으로 올바른 것은?