Есть ли простой способ прокомментировать блок кода в оболочке script?
Блокировать комментарии в оболочке Script
Ответ 1
В bash:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
'
и '
вокруг разделителя END
важны, иначе вещи внутри блока, такие как, например, $(command)
, будут проанализированы и выполнены.
Ответ 2
Отсутствует комментарий блока для оболочки script.
Используя vi
(да, vi
), вы можете легко прокомментировать строку n до m
<ESC>
:10,100s/^/#/
(который читает, начиная с строки 10 до 100, начинать замену строки (^) знаком #.)
и un comment с помощью
<ESC>
:10,100s/^#//
(который читает, начиная с строки от 10 до 100, начинается замена строки (^), за которой следует # с примечанием //.)
vi
является почти универсальным везде, где существует /bin/sh
.
Ответ 3
Вы можете использовать:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
Ответ 4
Следующее должно работать для 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"
в приведенном выше примере.
Ответ 5
если вы можете уклониться от одиночных кавычек:
__='
blah blah comment.
'
Ответ 6
В Vim:
- перейти к первой строке блока, которую вы хотите прокомментировать.
-
shift-V
(введите визуальный режим), вверх по выделенным линиям в блоке - выполните следующие действия при выборе
:s/^/#/
-
команда будет выглядеть так:
:'<,'>s/^/#
-
нажмите enter
например.
shift-V
jjj
:s/^/#
<enter>
Ответ 7
Вы можете использовать Vi/Vim Visual Block, который предназначен для таких вещей:
Ctrl-V
Highlight first element in rows you want commented
Shift-i
#
esc
Uncomment будет:
Ctrl-V
Highlight #
d
l
Это интерактивный способ общения с vi, а не подсчет или чтение номеров строк.
Наконец, в Gvim вы используете ctrl-q для перехода в режим Visual Block вместо ctrl-v (потому что это ярлык для вставки).
Ответ 8
Вариант трюка here-doc в принятом ответе sunny256 заключается в использовании ключевых слов Perl для комментариев. Если ваши комментарии на самом деле представляют собой какую-то документацию, вы можете начать использовать синтаксис Perl внутри блока комментариев, который позволяет вам распечатать его хорошо отформатированным, преобразовать его в man-страницу и т.д.
Что касается оболочки, вам нужно заменить 'END'
на '=cut'
.
echo "before comment"
: <<'=cut'
=pod
=head1 NAME
podtest.sh - Example shell script with embedded POD documentation
etc.
=cut
echo "after comment"
(Найдено на Вставка документации в оболочку script")
Ответ 9
Так много переоснащения...
Я считаю очень плохой практикой писать активный код для генерации пассивного кода.
Мое решение: у большинства редакторов есть режим выбора блока. Просто используйте его, чтобы добавить # ко всем строкам, которые вы хотите прокомментировать. Какая большая сделка...
Пример блокнота:
Чтобы создать: Alt - mousedrag down, нажмите #.
Чтобы удалить: Alt-mousedrag down, shift-right arrow, delete.
Ответ 10
Другой режим: если ваш редактор не имеет опции комментариев BLOCK,
- Откройте второй экземпляр редактора (например, File => New File...)
- Из ПРЕДЫДУЩЕГО файла, над которым вы работаете, выберите ТОЛЬКО ЧАСТЬ, КОТОРУЮ ВЫ ХОТИТЕ
- Скопируйте и вставьте его в окно нового временного файла...
- Откройте меню "Правка", выберите "ЗАМЕНИТЬ" и введите в качестве строки для замены '\n'
- введите как заменяющую строку: '\n #'
- нажмите кнопку "заменить ВСЕ"
СДЕЛАННЫЙ
это работает с любым редактором
Ответ 11
Используйте : '
чтобы открыть и '
чтобы закрыть.
Например:
: '
This is a
very neat comment
in bash
'
Это из примера Вегаса, найденного здесь