Linia shebang jest opcjonalny i jeśli uruchomić interpreter Ruby i przekazać skrypt to jako argument wiersza poleceń, wtedy flagi ustawione w wierszu poleceń są flagami z rubinami.
Linia Shebang wcale nie jest rubinem (chyba, że chcesz ją nazwać rubinowym komentarzem). To naprawdę skrypty powłoki. Większość użytkowników Linuksa i Uniksa uruchamia powłokę BASH (oznacza Borne Again SHell), ale prawie każdy system operacyjny ma interpreter poleceń, który będzie honorował Shebanga.
„#!/Usr/local/bin/Ruby -w”
"ona" część jest octothorp (#), aka krzyżyka, numer znaku, znaku hash, a teraz tagu hash (I nadal nazywają to Tic-Tac-Toe tylko bo).
Część "bang" to znak wykrzyknika (!) I to tak, jakby walić pięścią w stół, aby wykrzyczeć polecenie.
W systemie Windows "Shell" jest wierszem polecenia, ale nawet bez czarnego okna DOS, interpreter poleceń uruchomi skrypt na podstawie skojarzeń plików. Nie ma znaczenia, czy interpreter poleceń lub program langue czytają shebang i upewnia się, że flagi są honorowane, ważne jest to, że są honorowane.
"-w" jest flagą. Zasadniczo jest to instrukcja do śledzenia ruby podczas uruchamiania skryptu.W tym przypadku "-w" włącza ostrzeżenia, więc otrzymasz dodatkowe ostrzeżenia (skrypt nadal działa) lub błędy (skrypt przestanie działać) podczas wykonywania skryptu. Ostrzeżenia i wyjątki mogą zostać przechwycone i wykorzystane w trakcie programu. Pomagają one programistom znaleźć problemy, które prowadzą do nieoczekiwanego zachowania.
Jestem fanem szybkich i brudnych scenariuszy, aby wykonać pracę, więc nie -w. Jestem także fanem wysokiej jakości kodów wielokrotnego użytku, więc zdecydowanie używaj -w. Właściwe narzędzie do właściwej pracy. Jeśli się uczysz, zawsze używaj -w. Kiedy wiesz, co robisz i przestajesz używać -w przy szybkich zadaniach, zaczniesz się zastanawiać, kiedy to pomogłoby w użyciu - zamiast spędzać wiele godzin na rozwiązywaniu problemów. (Podpowiedź, gdy przyczyna problemu nie jest dość oczywista, wystarczy dodać -w i uruchomić go, aby zobaczyć, co otrzymasz).
"-w" wymaga dodatkowego kodowania, aby było jasne, co masz na myśli, więc nie od razu rozwiązuje problem, ale jeśli już piszesz kod z -w, nie będziesz miał problemu z dodawaniem niezbędne elementy, aby mały skrypt działał z ostrzeżeniami. W rzeczywistości, jeśli jesteś przyzwyczajony do używania -w, prawdopodobnie już piszesz ten kod i -w niczego nie zmieni, chyba że coś zapomnisz. Ruby wymaga znacznie mniej "kodu instalacyjnego" niż większość (być może wszystkie) języków kompilowanych, takich jak C++, więc nie używając -w nie pozwala na zapisanie dużej ilości tekstu, po prostu pozwala mniej myśleć, zanim spróbujesz uruchomić skrypt (IMHO).
-v jest trybem pełnym i NIE zmienia działania skryptu (nie są zgłaszane żadne ostrzeżenia, nie zatrzymuje się skrypt w nowych miejscach). Kilka serwisów i dyskusji wywołuje tryb -w verbose, ale -w jest trybem ostrzegawczym i zmienia wykonanie skryptu.
Dziękujemy za szczegółowe wyjaśnienie flagi '-w'! – lacostenycoder