Чи є простий спосіб прокоментувати блок коду в сценарії оболонки?
Чи є простий спосіб прокоментувати блок коду в сценарії оболонки?
Відповіді:
У басі:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
Роздільник 'та 'навколо нього ENDважливі, інакше всередині блоку, наприклад, $(command)буде проаналізовано та виконано.
EOFє класичним прикладом (і тому !, знак оклику сам по собі), але ви можете використовувати SNURFLE_BURGERSабо classical_end_markerчи будь-яке інше слово , яке не відображається на лінії по собі в закоментувавши матеріалу. Я б схилявся експериментувати з пробілами тощо, але це слово може спрацювати і з ними.
:), яка не читає вхід і завжди завершує успішне значення, і надсилає "коментар" як вхід. Не дуже до цього.
Немає коментарів щодо блоку скрипту оболонки.
Використовуючи vi(так, 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
'
Це з прикладу Вегаса, знайденого тут
У Vim:
shift-V (увійти в візуальний режим), вгору висвітлити лінії в блоці:s/^/#/команда буде виглядати приблизно так:
:'<,'>s/^/#натисніть Enter
напр
shift-V
jjj
:s/^/#
<enter>
:s/^#/
Ви можете використовувати режим Visual Block Vi / Vim, розроблений для таких матеріалів:
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 (адже це ярлик для вставки).
Чесно кажучи, чому так багато переобладнання ...
Я вважаю дійсно поганою практикою писати активний код для генерації пасивного коду.
Моє рішення: більшість редакторів мають режим вибору блоку. Просто використовуйте його, щоб додати # до всіх рядків, які ви хочете прокоментувати. У чому головна справа ...
Приклад блокнота:
Щоб створити: Alt - мишею, натисніть #.
Щоб видалити: Alt-mousedrag вниз, стрілка shift вправо, видалити.
Варіант хитрії тут-doc у прийнятій до відповіді Sunny256 відповіді полягає у використанні ключових слів 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"
(Знайдено в розділі " Вставлення документації в сценарій оболонки ")
Інший режим: Якщо ваш редактор НЕ БЛОКУВАТЬ опцію коментарів,
Зроблено
він працює з будь-яким редактором
Мені подобається, що один рядок відкривається та закривається:
if [ ]; then ##
...
...
fi; ##
"##" допомагає мені легко знайти початок і кінець коментаря до блоку. Я можу вставити номер після "##", якщо у мене є купа. Щоб вимкнути коментар, я просто вставлю "1" у "[]". Я також уникаю деяких проблем, які виникали з цитатами в коментованому блоці.