Ruby 명령줄 옵션: 스크립트 실행 및 환경 제어

options - Documentation for Ruby 3.4

작성자
Ruby Weekly
발행일
2023년 12월 25일

핵심 요약

  • 1 Ruby 명령줄 옵션은 스크립트 실행 방식, 입출력 처리, 디버깅 및 환경 설정을 정교하게 제어하여 개발 효율성을 높입니다.
  • 2 -e는 즉석 코드 실행, -n과 -p는 자동 루프를 통한 라인별 처리를 제공하여 스크립트 작성 및 테스트를 간소화합니다.
  • 3 -W, -d, -E와 같은 옵션들은 경고 수준, 디버그 모드, 문자열 인코딩을 유연하게 설정하여 다양한 운영 환경에 최적화된 실행을 가능하게 합니다.

도입

Ruby 프로그래밍 언어는 강력한 명령줄 인터페이스를 통해 스크립트 실행을 위한 다양한 옵션을 제공합니다. 이 옵션들은 개발자가 Ruby 프로그램을 실행할 때, 코드의 동작 방식, 입출력 처리, 환경 설정, 디버깅 모드 등을 세밀하게 제어할 수 있도록 설계되었습니다. 본 문서는 Ruby 스크립트의 유연성과 효율성을 극대화하는 데 필수적인 주요 명령줄 옵션들을 상세히 설명하며, 각 옵션의 기능과 활용 사례를 제시합니다.

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 $DEBUG to true): 전역 변수 $DEBUGtrue로 설정하여 디버그 관련 코드 블록을 활성화합니다.

  • -v / --verbose (Print Version; Set $VERBOSE): Ruby 버전을 출력하고 전역 변수 $VERBOSEtrue로 설정합니다. --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 in ENV['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 컴파일러의 동작을 제어하는 다양한 옵션들입니다. 성능 튜닝 및 디버깅에 활용됩니다.

결론

Ruby의 명령줄 옵션들은 스크립트의 실행 환경을 유연하게 조정하고, 특정 작업을 효율적으로 수행하며, 디버깅 및 개발 과정을 지원하는 데 필수적인 도구입니다. 입출력 처리부터 환경 설정, 디버깅, 그리고 최신 JIT 컴파일러 제어에 이르기까지 광범위한 기능을 제공함으로써 Ruby 개발자가 더욱 강력하고 최적화된 애플리케이션을 구축할 수 있도록 돕습니다. 이러한 옵션들을 숙지하고 적절히 활용하는 것은 Ruby 개발 역량을 한 단계 높이는 중요한 요소입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!