IT story

쉘 스크립트에서 주석 차단

hot-time 2020. 4. 20. 20:30
반응형

쉘 스크립트에서 주석 차단


쉘 스크립트에서 코드 블록을 주석 처리하는 간단한 방법이 있습니까?


bash에서 :

#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment

''주위에 END구분 기호, 예를 들면, 같은 블록 안에 다른 것들을 중요 $(command)구문 분석 및 실행됩니다.

에 대한 설명을 참조하십시오 질문을.


쉘 스크립트에는 블록 주석이 없습니다.

vi(yes, vi)를 사용하면 n에서 m 행까지 쉽게 주석을 달 수 있습니다

<ESC>
:10,100s/^/#/

(10 기호에서 100 기호로 대체 줄 시작 (^)을 # 기호로 읽습니다.)

댓글을 달지 않은 상태

<ESC>
:10,100s/^#//

(10 줄에서 100 줄의 대체 줄 시작 (^) 다음에 #가 붙은 #을 읽습니다.)

vi어디에나 거의 보편적입니다 /bin/sh.


당신이 사용할 수있는:

if [ 1 -eq 0 ]; then
  echo "The code that you want commented out goes here."
  echo "This echo statement will not be called."
fi

다음은 작동한다 sh, bash, kshzsh.

주석 처리 할 코드 블록은 다음 BEGINCOMMENTENDCOMMENT같이 넣을 수 있습니다 .

[ -z $BASH ] || shopt -s expand_aliases
alias BEGINCOMMENT="if [ ]; then"
alias ENDCOMMENT="fi"

BEGINCOMMENT
  echo "This line appears in a commented block"
  echo "And this one too!"
ENDCOMMENT

echo "This is outside the commented block"

위의 코드를 실행하면 다음과 같은 결과가 발생합니다.

This is outside the commented block

주석 처리 된 코드 블록 주석 해제 하려면

alias BEGINCOMMENT="if : ; then"

대신에

alias BEGINCOMMENT="if [ ]; then"

위의 예에서.


작은 따옴표를 피할 수 있다면 :

__='
blah blah comment.
'

Vim에서 :

  1. 댓글을 남기고 싶은 첫 번째 줄로 이동
  2. shift-V (시각 모드 입력), 블록의 하이라이트 라인
  3. 선택시 다음을 실행하십시오. :s/^/#/
  4. 명령은 다음과 같습니다.

      :'<,'>s/^/#
    
  5. 엔터를 치다

예 :

shift-V
jjj
:s/^/#
<enter>

Vi / Vim의 Visual Block 모드는 다음과 같은 것을 위해 설계되었습니다 :

Ctrl-V  
Highlight first element in rows you want commented  
Shift-i  
#  
esc  

주석 해제는 다음과 같습니다.

Ctrl-V  
Highlight #'s  
d  
l  

이것은 행 번호를 세거나 읽지 않고 이런 종류의 일을하는 vi의 대화 형 방법입니다.

마지막으로 Gvim에서는 ctrl-q를 사용하여 ctrl-v 대신 Visual Block 모드로 들어갑니다 (붙여 넣기 바로 가기이기 때문에).


sunny256의 대답에 대한 here-doc 트릭의 변형은 주석에 Perl 키워드를 사용하는 것입니다. 주석이 실제로 일종의 문서 인 경우 주석이 달린 블록 내에서 Perl 구문을 사용하여 멋진 형식으로 인쇄하고 맨 페이지로 변환하는 등의 작업을 수행 할 수 있습니다.

쉘에 관한 한으로 만 교체 'END'하면 '=cut'됩니다.

echo "before comment"
: <<'=cut'
=pod

=head1 NAME
   podtest.sh - Example shell script with embedded POD documentation

etc.

=cut
echo "after comment"

( " 쉘 스크립트에 문서 포함 "에 있음)


너무 많은 엔지니어링 ...

수동 코드를 생성하기 위해 활성 코드를 작성하는 것은 실제로 나쁜 습관이라고 생각합니다.

내 해결책 : 대부분의 편집자는 블록 선택 모드를 가지고 있습니다. 주석을 달려는 모든 행에 #을 추가하기 위해 사용하십시오. 큰 문제는 무엇입니까 ...

메모장 예 :

만들려면 : Alt-아래로 마우스 드래그, #을 누르십시오.

삭제하려면 : Alt 키를 누른 상태에서 마우스 오른쪽 아래로 이동하고 오른쪽 화살표를 누른 다음 삭제하십시오.


: '열고 '닫을 때 사용 합니다 .

예를 들면 다음과 같습니다.

: '
This is a
very neat comment
in bash
'

이것은 베가스의 예에서 나온 것입니다.


다른 모드는 다음과 같습니다. 편집기에 블록 없음 주석 옵션이있는 경우

  1. 편집기의 두 번째 인스턴스를여십시오 (예 : File => New File ...).
  2. 작업중인 이전 파일에서 원하는 부분 만 선택하십시오.
  3. 새 임시 파일의 창에 복사하여 붙여 넣습니다 ...
  4. 편집 메뉴를 열고 바꾸기를 선택한 다음 '\ n'으로 바꿀 문자열로 입력하십시오.
  5. 대체 문자열로 입력 : '\ n #'
  6. '모두 바꾸기'버튼을 누르십시오

끝난

그것은 모든 편집기에서 작동합니다

참고 URL : https://stackoverflow.com/questions/947897/block-comments-in-a-shell-script

반응형