답변:
bash에서 :
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
'
과 '
주위에 END
구분 기호, 예를 들면, 같은 블록 안에 다른 것들을 중요 $(command)
구문 분석 및 실행됩니다.
EOF
고전적인 예이다 (그래서입니다 !
자체에 느낌표),하지만 당신은 사용할 수 있습니다 SNURFLE_BURGERS
또는 classical_end_marker
주석 처리 된 재료 자체의 줄에 나타나지 않는 다른 단어 나. 나는 공간 등을 실험하는 것에 익숙하지 않지만 단어가 그들과 잘 작동 할 수도 있습니다.
:
, 입력을 읽지 않고 항상 성공적인 값으로 종료 되는 명령 ( )을 실행 하고 "주석"을 입력으로 보냅니다. 별로.
쉘 스크립트에는 블록 주석이 없습니다.
vi
(yes, vi
)를 사용하면 n 행 에서 m 행까지 쉽게 주석을 달 수 있습니다
<ESC>
:10,100s/^/#/
(10 기호에서 100 기호로 대체 줄 시작 (^)을 # 기호로 읽습니다.)
댓글을 달지 않은 상태
<ESC>
:10,100s/^#//
(10 줄에서 100 줄의 대체 줄 시작 (^) 다음에 #가 붙은 #을 읽습니다.)
vi
어디에나 거의 보편적입니다 /bin/sh
.
|noh
하십시오. 파이프는 추가 명령을 분리 noh
하며 강조 표시하지 않습니다. 다음에 검색 할 때 검색어 강조 표시가 자동으로 다시 시작됩니다. 예 ::10,100s/^/#/g|noh
<SHIFT>+G 10 <ENTER>
다음 0
또는 탐색에 다른 방법으로). 그런 다음을 사용 <CTRL>+V
하여 시각적 차단 모드로 들어가고 주석을 추가하려는 모든 줄의 시작 부분을 강조 표시하십시오 (이 예에서는 90 J
). 그런 다음을 눌러 SHIFT+I
강조 표시된 블록 앞에 삽입하십시오. 주석 기호 (예 :)를 입력하고을 #
눌러 <ESC>
접두사를 완성하십시오. 이 설명은 오래 들리지만 실제로는 실제로 훨씬 빠릅니다.
당신이 사용할 수있는:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
if [ ];
작동합니다.
if false;
. stackoverflow.com/a/18019516/2097284
다음은 작동한다 sh
, bash
, ksh
와 zsh
.
주석 처리 할 코드 블록은 다음 BEGINCOMMENT
과 ENDCOMMENT
같이 넣을 수 있습니다 .
[ -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.
'
: '
열고 '
닫을 때 사용 합니다 .
예를 들면 다음과 같습니다.
: '
This is a
very neat comment
in bash
'
이것은 Vegas에서 찾은 예입니다 .
Vim에서 :
shift-V
(시각 모드 입력), 블록의 하이라이트 라인:s/^/#/
명령은 다음과 같습니다.
:'<,'>s/^/#
엔터를 치다
예 :
shift-V
jjj
:s/^/#
<enter>
:s/^#/
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 모드로 들어갑니다 (붙여 넣기 바로 가기이기 때문에).
모든 정직에서 왜 그렇게 과도하게 엔지니어링 하는가?
수동 코드를 생성하기 위해 활성 코드를 작성하는 것은 실제로 나쁜 습관이라고 생각합니다.
내 해결책 : 대부분의 편집자는 블록 선택 모드를 가지고 있습니다. 주석 처리하려는 모든 행에 #을 추가하기 위해 사용하십시오. 큰 문제는 무엇입니까 ...
메모장 예 :
만들려면 : Alt-아래로 마우스 드래그, #을 누르십시오.
삭제하려면 : Alt 키를 누른 상태에서 마우스 오른쪽 아래로 이동하고 오른쪽 화살표를 누른 다음 삭제하십시오.
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"
( " 쉘 스크립트에 문서 포함 "에 있음)