ioerror

=(equal) 사용법 및 옵션 - 문자열 비교 및 조건식 검증 연산자 본문

OS

=(equal) 사용법 및 옵션 - 문자열 비교 및 조건식 검증 연산자

반응형

=(equal) 사용법 및 옵션 - 문자열 비교 및 조건식 검증 연산자

= - equal sign operator / ed command

문자열 비교 및 조건식 검증 연산자

유닉스 및 리눅스 환경에서 =는 test([ ]) 명령어 내의 문자열 동등 비교 연산자, 쉘 스크립트에서의 변수 할당, zsh에서의 명령어 실행 경로 확장 기호, 텍스트 편집기 ed/ex에서의 현재 행 번호 출력 명령어로 사용되는 유닉스/리눅스 핵심 기호 및 제어 명령이다.

1. 명령어 용도

  • test 또는 [ ] 구문 내에서 두 문자열이 동일한지 비교 검증하는 경우
  • 쉘 스크립트에서 변수에 값을 할당하거나 초기화하는 경우
  • zsh 쉘에서 명령어의 절대 경로를 동적으로 조회 및 확장하는 경우
  • 라인 에디터 ed/ex에서 현재 편집 중인 줄 번호를 확인할 때 사용하는 경우

2. 명령어 서식

Bash
 
# 1. test / [ ] 조건식에서의 문자열 비교
[ "string1" = "string2" ]

# 2. 쉘 변수 할당
VARIABLE=value

# 3. zsh 명령어 경로 확장
=command

# 4. ed / ex 편집기 라인 번호 확인
=

3. 명령어 옵션

  • 주요 옵션 소개 테이블
연산/문맥 설명 사용가능 OS 및 쉘
[ A = B ] 두 문자열 A와 B가 동일한지 비교하여 참/거짓을 반환하다. [POSIX/Bash/zsh]
[ A == B ] GNU test 및 Bash 확장 조건식 [[ ]]에서 문자열 일치 여부를 비교하다. [Linux/Bash/zsh]
VAR=value 변수 VAR에 특정 문자열이나 숫자를 할당하다. [POSIX/Shell]
=cmd 지정한 명령어 cmd가 위치한 절대 경로(PATH)로 확장하다. [zsh]
= ed 또는 ex 라인 에디터에서 현재 행 번호를 출력하다. [POSIX/ed]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# 1. test([ ]) 구문을 활용한 문자열 비교
if [ "$USER" = "root" ]; then
  echo "Root user"
fi
# output: Root user (root 계정 실행 시)

# 2. 쉘 변수 할당 시 공백 주의
MY_VAR="Linux"
echo $MY_VAR
# output: Linux

# 3. zsh 경로 확장 연산자 사용 예시 [zsh]
echo =ls
# output: /bin/ls

# 4. ed 라인 편집기에서 현재 행 번호 출력 [ed]
# ed myfile.txt 실행 중 = 입력 시:
=
# output: 15 (현재 커서가 위치한 라인 번호)

4. 명령어 특이사항(유의사항)

  • 비교 연산 시 공백 필수: [ "$a" = "$b" ] 구문에서 = 연산자 양옆에는 반드시 공백이 존재해야 하다. 공백이 누락될 경우([ "$a"="$b" ]) 쉘은 이를 비교문이 아닌 하나의 단일 문자열 할당/검사로 인식하여 항상 참(true)을 반환하는 오류가 발생하다.
  • 변수 할당 시 공백 금지: 반대로 변수에 값을 할당할 때(VAR=value)는 = 연산자 양옆에 공백이 없어야 하다. 공백을 넣으면(VAR = value) 쉘은 VAR를 실행할 명령어로 인식하여 command not found 오류를 발생시킨다.
  • =와 ==의 차이점: POSIX 표준 test / [ 명령에서는 =가 표준 문자열 비교 연산자이다. Bash의 [[ ]] 구문에서는 ==도 지원하며 패턴 매칭을 제공하지만, 시스템 간 이식성을 위해서는 [ 조건문 내에서 =를 사용하는 것이 권장된다.

관련 명령어들

  • test: 파일 타입 검사 및 문자열/수치 비교 조건식을 평가하다.
  • expr: 정수 연산 및 문자열 패턴 비교를 수행하다.
  • ed: 유닉스 표준 행 기반(Line-oriented) 텍스트 편집기이다.
  • which: 실행 명령어의 전체 경로를 검색하여 출력하다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

반응형
Comments