Chciałbym móc skomentować pojedynczą flagę w jednowierszowym poleceniu. Bash tylko wydaje się miećfrom # till end-of-line
komentarze. Patrzę na takie sztuczki jak:
ls -l $([ ] && -F is turned off) -a /etc
To brzydkie, ale lepsze niż nic. Czy jest lepszy sposób?
Poniższe wydaje się działać, ale nie jestem pewien, czy jest przenośny:
ls -l `# -F is turned off` -a /etc
#comment
sztuczka jest również wymieniona tutaj: stackoverflow.com/questions/9522631/…${IFS#comment}
w komentarzach znajduje się ta cudowna sztuczka, którą @pjh wprowadził. Żadna powłoka podrzędna nie jest wywoływana.Odpowiedzi:
Mój preferowany to:
Komentowanie w skrypcie Bash
źródło
$(#comment)
nie działa.)
jako część samego komentarza. Większość wyzwań związanych z bash wynika z kompatybilności retro ze starszymi wersjami, a jedną z powszechnych strategii jest użycie najstarszego możliwego rozwiązania.true && `# comment` && true
to prawidłowe wyrażenie. Prawdziwy komentarz wygenerowałby coś takiego:syntax error near unexpected token
&& '' 'Uważam, że najłatwiej (i najbardziej czytelnie) jest po prostu skopiowanie wiersza i skomentowanie oryginalnej wersji:
źródło
$(: ...)
jest trochę mniej brzydki, ale nadal nie jest dobry.źródło
$(: ...)
składnia w rzeczywistości wydaje się nie zezwalać na osadzanie komentarzy: podczas gdyecho "foo" `# comment` "bar"
zakończy komentarz po drugim odwrotnym znaku, rzekomy odpowiednikecho "foo" $(: # comment) "bar"
nie analizuje niczego za#
.Co powiesz na przechowywanie go w zmiennej?
źródło
Oto moje rozwiązanie dla komentarzy w tekście między wieloma poleceniami potokowymi.
Przykładowy kod bez komentarzy:
Rozwiązanie dla komentarza potoku (przy użyciu funkcji pomocniczej):
Lub jeśli wolisz, oto to samo rozwiązanie bez funkcji pomocniczej, ale jest trochę bardziej bałaganiarskie:
źródło
Większość poleceń pozwala argumentom pojawiać się w dowolnej kolejności. Po prostu przenieś skomentowane flagi na koniec linii:
Następnie, aby go ponownie włączyć, po prostu odkomentuj i usuń tekst:
źródło
#
bez ani jednej spacji po poleceniu. Dziękuję Ci!Jeśli wiesz, że zmienna jest pusta, możesz użyć jej jako komentarza. Oczywiście, jeśli nie jest pusty, zepsuje twoje polecenie.
§ 10.2. Zastępowanie parametrów
źródło
${name:=comment}
aby być bezpiecznym.Aby wyłączyć część polecenia, taką jak
a && b
, po prostu utworzyłem pusty skrypt,x
który jest na ścieżce, więc mogę robić takie rzeczy, jak:kiedy muszę budować, i
kiedy nie (używając Ctrl + Ai, Ctrl + Eaby przejść do początku i końca).
Jak zauważono w komentarzach, innym sposobem na to jest wbudowany Bash
:
zamiastx
:źródło
:
Jak w:string; of; commands; : disabled; enabled;
Jeśli komentarz jest wart dodania, prawdopodobnie może pojawić się na końcu wiersza lub w osobnym wierszu. Rzadko kiedy potrzebuję komentarzy w linii z kodem przed i po komentarzu w jakimkolwiek języku.
Och, jest jeden wyjątek, którym jest dialekt języka SQL, którego zwykle używam i który używa '{comments}'. Sporadycznie napiszę:
Ale nawet to jest naciągane.
źródło