Widziałem wiele samouczków, które używają --poleceń po. Coś takiego:
command --
Co to --znaczy
Widziałem wiele samouczków, które używają --poleceń po. Coś takiego:
command --
Co to --znaczy
Odpowiedzi:
--Służy do wskazania końca opcji wiersza poleceń. Umożliwia to użycie argumentów zaczynających się od --. Na przykład, jeśli utworzysz plik o nazwie --foo:
$ > '--foo'
$ ls
--foo
A potem spróbuj go usunąć, rmpomyślisz, że podajesz mu argument:
$ rm --foo
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.
Jednym ze sposobów obejścia tego jest użycie --:
$ rm -- --foo
Jest to powszechna praktyka zalecana przez POSIX , więc jest obsługiwana przez wiele programów.
rmprogramu i wielu narzędzi zgodnych z POSIX. Zobacz wytyczną 10 . Aby faktycznie sprawdzić, czy Bash nie wykonuje pracy (i to nie miałoby sensu), po prostu stwórz mały skrypt za pomocą just printf '> %s <\n' "$@"i uruchom go --.
--, ale oczywiście dzieje się tak, ponieważ odpowiedni moduł Perla ( getopts) również go obsługuje. Masz rację, po prostu szybko przeszukałem man bashsekcję, którą zacytowałem, ale nie zauważyłem, że znajdowała się w sekcji „Opcje wiersza poleceń”. Dzięki za korektę, odpowiedź zredagowana.
Większość poleceń użyje znaku -, aby powiedzieć poleceniu, że dalsze parametry powinny być traktowane inaczej. Jednym z przykładów jest rm - - nazwa pliku wymieniony powyżej. Kolejny przykład, skrypt taki jak „startx” zinterpretuje wszystko wcześniej - i przekaże wszystko po nim do serwera X.