Czy wiesz, że większość shebang
implementacje wesprze jeden parametr, więc jeśli masz coś takiegoJak oszukać shebang, aby umożliwić wiele parametrów?
#!/usr/bin/env some-tool-accepting-yaml param1 param2
... (yaml body)
Będzie teraz działać zgodnie z oczekiwaniami, ponieważ będzie to wywołać narzędzie z „param1 param2” argumentu zamiast dzieląc go na dwa argumenty.
Wydaje się, że jeden workaround praktyką jest użyć czegoś takiego:
#!/bin/sh
arbitrary_long_name==0 "exec" "/usr/bin/gawk" "--re-interval" "-f" "$0" "[email protected]"
Teraz to podejście pozwoliłoby skrypt YAML oparte nieważny ze względu na 2 linii, więc jedynym akceptowalnym Rozwiązaniem byłby taki, który jest również komentarz, zaczynając od "#".
Czy istnieje sposób na obejście tego problemu?
który jest wykonywalny, aby uruchomić to jest 'python'? ponieważ istnieje również podobne pytanie: https://stackoverflow.com/questions/17458528/why-does-this-snippet-with-a-shebang-bin-sh-and-exec-python-inside-4-single-q –
Rozwiązanie, które cytujesz, dotyczy awk, a nie pytona. – rici
Czy interesuje cię obejście problemu dla YAML, czy ogólne rozwiązanie? W pierwszym przypadku, powiedz nam, co plik wykonywalny powinien ostatecznie pochłonąć zawartość pliku? – randomir