Como comentar linhas particulares em um script shell

alguém pode sugerir como comentar linhas particulares no script shell que não {[[0]}?

Acho que quero comentar cinco linhas. Em vez de adicionar {[[0]} a cada linha, existe alguma outra maneira de comentar as cinco linhas?

Author: alex, 2013-08-21

3 answers

Você pode comentar a secção de um script usando um condicional.

Por exemplo, o seguinte guião:

DEBUG=false
if ${DEBUG}; then
echo 1
echo 2
echo 3
echo 4
echo 5
fi
echo 6
echo 7

Daria resultado:

6
7

A fim de descomentar a secção do Código, basta comentar a variável:

#DEBUG=false

(fazer isso imprimiria os números 1 a 7.)

 30
Author: devnull, 2013-08-21 10:11:17

Sim (embora seja uma invasão desagradável). Você pode usar um heredoc Assim:

#!/bin/sh

# do valuable stuff here
touch /tmp/a

# now comment out all the stuff below up to the EOF
echo <<EOF
...
...
...
EOF
O que está isto a fazer ? A heredoc envia todas as seguintes entradas para o terminador (neste caso, EOF) para o comando indicado. Então você pode cercar o código que deseja comentar com
echo <<EOF
...
EOF
E vai ser preciso todo o código contido entre os dois telhados e alimentá-los.echo (echo não lê de stdin para que tudo seja jogado fora).

Note que com o acima você pode colocar qualquer coisa no heredoc. Não tem que ser um código de shell válido (ou seja, não tem que processar corretamente).

Isto é muito desagradável, e só o ofereço como ponto de interesse. Você não pode fazer o equivalente a C's /* ... */
 17
Author: Brian Agnew, 2013-08-21 10:09:17

Você tem que confiar em ' # ' mas para tornar a tarefa mais fácil em vi você pode executar o seguinte:

:10,20 s/^/#

Com 10 e 20 sendo os números de linha inicial e final das linhas que você quer comentar

E desfazer quando estiver completo:

:10,20 s/^#//
 3
Author: S. Morehouse, 2018-01-25 16:19:13