Jak dodawać komentarze do instrukcji wielowierszowych w skrypcie Bash?

3

Nie dodam komentarzy do instrukcji wieloliniowych w skrypcie bash. Wygląda na to, że bash nie tłumaczy.

Ponieważ komentarze mogą być naprawdę przydatne, ponieważ istnieją potencjalne 4-5 wierszy, czy ktoś może mi doradzić, jak to osiągnąć?

To tylko podstawowy przykład, który nie działa.

#!/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

Podaję tylko prosty przykład. Zezwalanie na komentarze może być łatwiejsze w przypadku złożonych przykładów ( nie jest to skomplikowany przykład, ale masz rację ), takich jak:

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

Oczywiście nie ma za nimi białych znaków \.

zbieg
źródło

Odpowiedzi:

2

Linia podzielona na kilka linii przez ucieczkę nowej linii to nadal tylko jedna linia.

Komentarz rozciąga się od #końca do końca linii, bez względu na to, czy linia jest podzielona na wiele linii, czy nie.

Co powłoka analizuje podczas pisania

echo hello \
# world

jest

echo hello # world

Jest to jednak inne (i działa):

grep hello |
# now sed:
sed 1p

Ponieważ każda część potoku jest ukończona na własnej linii, możliwe jest przeplatanie linii z komentarzami, o ile znaki nowej linii nie są poprzedzane znakami ucieczki.

Kusalananda
źródło
Tak, prawda, zapomniałem dołączyć |do drugiego przykładu. Dziękuję za wyjaśnienie!
zbieg