Может кто-нибудь предложить, как комментировать определенные строки в сценарии оболочки, кроме #
?
Предположим, я хочу прокомментировать пять строк. Вместо добавления #
к каждой строке, есть ли другой способ комментировать пять строк?
Может кто-нибудь предложить, как комментировать определенные строки в сценарии оболочки, кроме #
?
Предположим, я хочу прокомментировать пять строк. Вместо добавления #
к каждой строке, есть ли другой способ комментировать пять строк?
Вы можете прокомментировать раздел script с помощью условного.
Например, следующий script:
DEBUG=false
if ${DEBUG}; then
echo 1
echo 2
echo 3
echo 4
echo 5
fi
echo 6
echo 7
выводит:
6
7
Чтобы раскомментировать раздел кода, вам просто нужно прокомментировать переменную:
#DEBUG=false
(Это приведет к печати чисел с 1 по 7.)
Да (хотя это неприятный хак). Вы можете использовать heredoc таким образом:
#!/bin/sh
# do valuable stuff here
touch /tmp/a
# now comment out all the stuff below up to the EOF
echo <<EOF
...
...
...
EOF
Что это делает? A heredoc
передает все следующие данные до терминатора (в данном случае EOF) в назначенную команду. Таким образом, вы можете окружать код, который вы хотите прокомментировать, с помощью
echo <<EOF
...
EOF
и он возьмет весь код, содержащийся между двумя EOF, и отправит их в echo
(echo
не читает из stdin, поэтому все это отбрасывается).
Обратите внимание, что с вышесказанным вы можете поместить что-нибудь в heredoc
. Он не должен быть действительным кодом оболочки (т.е. Он не должен правильно разбираться).
Это очень неприятно, и я предлагаю его только как точку интереса. Вы не можете сделать эквивалент C /* ... */
Вы должны полагаться на '#', но чтобы упростить задачу в vi, вы можете выполнить следующее (сначала нажмите escape):
:10,20 s/^/#
10 и 20 - номера строк в начале и конце строк, которые вы хотите закомментировать
и отменить, когда вы закончите:
:10,20 s/^#//
для однострочного комментария добавьте # в начале строки
для многострочных комментариев добавьте " (одинарная кавычка), с которой вы хотите начать, и добавьте " (снова одинарную кавычку) в точку, где вы хотите закончить строку комментария.