Como adicionar comentários em instruções multilinhas no script Bash?

4

Não estou adicionando comentários para instruções de várias linhas no script bash. Parece que o bash não está interpretando.

Como os comentários podem ser realmente úteis, porque existem linhas de 4-5 linhas, alguém pode me aconselhar como conseguir isso?

Este é apenas um exemplo básico, que não está funcionando.

#!/bin/bash

iptables -A INPUT \
#Comment for rule bellow
-p tcp --dport 21 \
# Comment for rule bellow no2
-s 10.0.0.1 \
-j ACCEPT

Eu apenas dou um exemplo simples. Permitir comentários pode ser mais fácil para exemplos complexos ( este não é um exemplo complicado, mas você tem um ponto ) assim:

grep some_file \
#awk does that...
awk '{print $1}' \
#sed does that...
sed 's/match1/match2/g' 

Claro que não há whiteechars atrás de \ .

    
por fugitive 11.03.2017 / 21:44

1 resposta

2

Uma linha dividida em várias linhas ao escapar da nova linha ainda é apenas uma linha.

Um comentário se estende do # até o final da linha, independentemente de essa linha estar dividida em várias linhas ou não.

O que o shell analisa quando você escreve

echo hello \
# world

é

echo hello # world

Isso é diferente (e funciona):

grep hello |
# now sed:
sed 1p

Como cada parte do pipeline está completa em sua própria linha, é possível misturar as linhas com comentários, contanto que as novas linhas não sejam escapadas.

    
por 11.03.2017 / 22:36