Czy można wstawić heredoc do funkcji bash?
Poniższa trywialna próbka powoduje błąd: ./heredoc_in_function.sh: 10: Syntax error: end of file unexpected (expecting "}")
#!/bin/sh
my_function () {
cat <<HEREDOC
heredoc contents
HEREDOC
}
my_function
Środowisko:
- Ubuntu 11.04 (GNU / Linux 2.6.38-8-server x86_64)
- GNU bash, wersja 4.2.8 (1) -release (x86_64-pc-linux-gnu)
Odpowiedzi:
Twój kod wyglądał dla mnie dobrze, więc skopiowałem go wiersz po wierszu i działał dla mnie:
Czy możliwe jest ręczne przepisanie pliku, aby upewnić się, że go nie brakuje lub dodania spacji / tabulatorów itp.?
Jak to robisz? Zrobiłem
chmod +x test.sh
i wtedy./test.sh
EDYCJA: Otrzymałem taki sam błąd jak ty, gdy dodałem spację na początku linii zamykającym HEREDOC.
Dodatkowa uwaga:
HEREDOC
Powoduje to również spływ końcowy za zamknięciemźródło
HEREDOC
Powoduje to również