[번외] 명령어 치환
리눅스에서는 명령어의 실행 결과를 문자열처럼 삽입할 수 있는 기능이 있다. 이를 명령어 치환 (Command Substitution) 이라고 하며, 두 가지 방식이 있다.
요약
구문 | 설명 | 예시 결과 (출력 포함) |
---|---|---|
`command` | 오래된 방식 (호환성 높음) | echo "현재 시각은 `date`" |
$(command) | 권장되는 방식 (가독성 좋고 중첩 가능) | echo "현재 시각은 $(date)" |
백틱(``)
- 형식:`command`
- 설명: 명령어
command
를 실행하고, 그 출력 결과가 해당 위치에 문자열로 삽입된다. - 예시:
echo "현재 시각은 `date`"
출력 예시:
현재 시각은 Sun Jul 16 15:35:00 UTC 2024
$( … ) 사용
- 형식:
$(command)
- 설명: 위와 동일하게 명령어의 출력을 삽입하지만, 가독성 좋고 중첩 사용 가능해서 현대 스크립트에서 더 많이 사용된다.
- 예시:
echo "현재 시각은 $(date)"
출력 예시:
현재 시각은 Sun Jul 16 15:35:00 UTC 2024
중첩 사용 예시
echo "현재 디렉토리에는 $(ls | wc -l)개의 항목이 있다."
출력 예시:
현재 디렉토리에는 5개의 항목이 있다.
정리
- 가능한 한
$(command)
형태를 사용하는 것이 좋다. - 백틱(``)은 오래된 스크립트에서 자주 보이지만 중첩이 어려워 유지보수가 불편하다.
- 스크립트에서 동적으로 정보를 넣을 때 매우 유용하다 (예: 날짜, 파일 목록, 계산 등).