Ruby 명령줄 옵션은 그 기능에 따라 여러 범주로 분류될 수 있으며, 개발자는 이를 통해 특정 요구사항에 맞춰 스크립트 실행 환경을 맞춤 설정할 수 있습니다.
기본 실행 및 입출력 제어
-e(Execute Given Ruby Code): 명령줄에서 직접 Ruby 코드를 실행할 수 있게 합니다. 여러 번 사용 가능하며, 간단한 스크립트나 테스트에 유용합니다.- 예시:
$ ruby -e 'puts "Hello, World."'
- 예시:
-n(Run Program in gets Loop): 프로그램을 `Kernel
gets 루프 내에서 실행하여 파일의 각 라인을 자동으로 처리합니다. $_` 변수에 현재 라인이 저장됩니다.
-
-p(-n, with Printing):-n과 동일하게gets루프를 실행하지만, 각 라인 처리 후$_의 내용을 자동으로 출력합니다. -
-0(Set$/(Input Record Separator)): 입력 레코드 구분자$/를 설정합니다. 옥탈 값, 빈 문자열 (""), 또는nil로 설정할 수 있습니다. -
-a(Split Input Lines into Fields):-n또는-p와 함께 사용될 때,$_의 내용을$F배열로 분할합니다. 기본 구분자는$;입니다. -
-F(Set Input Field Separator):-a와 함께 사용되며, 입력 필드 구분자를 지정합니다. 정규 표현식도 사용 가능합니다. -
-l(Set Output Record Separator; Chop Lines):-n또는-p와 함께 사용될 때, 출력 레코드 구분자$\을$/로 설정하고 각 입력 라인에 `String
chop!`을 적용합니다.
-i(Set ARGF In-Place Mode):ARGF의 인플레이스 모드를 설정하여 원본 파일을 수정하고 백업 파일을 생성할 수 있게 합니다.
환경 설정 및 디버깅
-
-C(Set Working Directory): Ruby 프로그램의 작업 디렉토리를 지정합니다. 현재 셸의 작업 디렉토리는 변경되지 않습니다. -
-r(Require Library): Ruby 프로그램 실행 전에 특정 라이브러리를require합니다. 여러 라이브러리를 지정할 수 있습니다. -
-s(Define Global Variable): 프로그램 이름 뒤에 오는-foo=bar형태의 사용자 정의 옵션을 전역 변수$foo로 정의합니다. -
-d/--debug(Set$DEBUGto true): 전역 변수$DEBUG를true로 설정하여 디버그 관련 코드 블록을 활성화합니다. -
-v/--verbose(Print Version; Set$VERBOSE): Ruby 버전을 출력하고 전역 변수$VERBOSE를true로 설정합니다.--verbose는 추가적으로$stdin입력을 비활성화합니다. -
-w/-W(Set Warning Policy): 경고 메시지 출력 정책을 설정합니다.-W0(경고 없음),-W1(보통),-W2(높음) 또는-W(높음)으로 지정할 수 있습니다.
인코딩 및 기능 제어
-
-E/--encoding(Set Default Encodings): 기본 외부 및 내부 인코딩을 설정합니다.UTF-8:CESU-8형식으로 외부 및 내부 인코딩을 동시에 지정할 수 있습니다. -
--external-encoding: 기본 외부 인코딩만 설정합니다. -
--internal-encoding: 기본 내부 인코딩만 설정합니다. -
--disable/--enable(Disable/Enable Features):gems,did_you_mean,frozen-string-literal,jit등 특정 Ruby 기능을 활성화하거나 비활성화합니다.
기타 유틸리티 및 실험적 옵션
-
-c(Check Syntax): Ruby 프로그램의 구문만 검사하고 실제 실행은 하지 않습니다. -
-h/--help: 짧거나 긴 도움말 메시지를 출력합니다. -
-S(Search Directories inENV['PATH']):PATH환경 변수에 지정된 디렉토리에서 Ruby 프로그램을 검색하여 실행합니다. -
-x(Execute Ruby Code Found in Text):#!로 시작하고 ‘ruby’ 문자열을 포함하는 라인 이후부터__END__또는 파일 끝까지의 Ruby 코드를 실행합니다. -
--backtrace-limit: 백트레이스에 표시될 항목 수를 제한합니다. -
JIT (Just-In-Time) 관련 옵션 (
--jit,--jit-debug,--jit-max-cache등): Ruby 3.x에서 도입된 실험적 JIT 컴파일러의 동작을 제어하는 다양한 옵션들입니다. 성능 튜닝 및 디버깅에 활용됩니다.