Czy istnieją środowiska IDE przeznaczone do obsługi skryptów powłoki, w szczególności skryptów bash i zsh? Oznacza to wyróżnianie składni w skryptach powłoki i, co ważniejsze, debugowanie środowisk z funkcjami takimi jak punkty przerwania, sprawdzanie i modyfikowanie zmiennych itp., Podobnie jak w przypadku zwykłych języków programowania, takich jak Python, Java i C.
Na przykład Microsft Windows Powershell ma środowiska IDE takie jak Powershell Plus i PowerGui .
Googling wywołał kombinację ShellEd , wtyczki Eclipse do edycji skryptów powłoki, i BashEclipse , debugger Bash, który współpracuje z ShellEd; Jeszcze tego nie próbowałem.
Czy są jakieś inne środowiska IDE ze skryptami powłoki dla Un * x podobne do tej kombinacji? Czy ktoś ma z nimi jakieś doświadczenie?
Komentarze
- Nie głosowałem przeciw, ale ktokolwiek to zrobił, zrobił to, ponieważ nie zadajesz pytania. Na jedyne pytanie w Twoim poście można odpowiedzieć tak / nie. O co właściwie pytasz ? Jak działają te programy? Co robią? Co dokładnie próbujesz zrobić?
- Bash IDE? Rozszczepienie jądra atomowego w celu zagotowania wody na herbatę …
- Właściwie mając debugger bash to bardzo dobry pomysł – tak jak w przypadku każdego języka programowania, twój kod będzie lepszy, jeśli będziesz powoli przechodzić przez każdą linię w debugerze, badać zmienne, myśleć o tym, co robi kod, itp. Debugger to najlepszym sposobem, aby to zrobić, nawet jeśli Twój program lub skrypt nie ' zawiera błędów. Możesz pobrać bashdb w większości dystrybucji, co pozwoli ci to zrobić w trybie tekstowym. , starzejący się debugger graficzny DDD może pracować z bashdb, dzięki czemu masz bardziej ” wizualne ” doświadczenie.
- Tak, z pewnością można Zrób to. Wielu to robi i to ' tak sobie radzą przez lata. Jeśli to ci odpowiada, nie ' nie przekonywałbym Cię inaczej. Moim zdaniem jest to gorsze podejście, które obciąża mózg zadaniami o niskiej wartości (jak mentalne śledzenie wartości zmiennych itp.). Ideą dobrego interfejsu debuggera jest zwolnienie tych cykli na myślenie o programie. Z mojego doświadczenia wynika, że ma to znaczenie – możesz więcej uwagi skupić się na myśleniu o tym, co robi program, jeśli ' wydajesz mniej na takie rzeczy.
- Dla tych z nas, którzy mają czajniki elektryczne lub pola grzewcze w USA lub Europie, znaczna część naszej podstawowej produkcji energii elektrycznej pochodzi z elektrowni jądrowych, więc kiedy gotujemy wodę na herbatę, korzystamy z rozszczepienia jądrowego, przynajmniej częściowo .
Odpowiedź
Nie powiedziałbym, że jest to ani dobrze znane, ani dobrze używane, ale możesz mieć spójrz na basheclipse :
Muszę przyznać, że nie mam doświadczenia z basheclipse, a nawet nie udało mi się go zainstalować z powodu niezgodności wersji zaćmienia.
Z drugiej strony używam specyficznych funkcji debugowania bash i ksh93, zwłaszcza trap ERR
i trap DEBUG
, ale nie oparte na nich debuggery kshdb i bashdb
Komentarze
- Uważam za dość ironiczne, że zrzut ekranu przedstawia okno w stylu Windows.
- @NigelNquande Szczerze mówiąc, ' m nie jest użytkownikiem basheclipse (lub eclipse w tym przypadku). Zdecydowanie używam funkcji debugowania udostępnianych przez ksh93 i bash, ale nie używam GUI. Ten zrzut ekranu pochodzi z witryny basheclipse. Może to być jakiś motyw gnome lub po prostu prawdziwy zrzut ekranu systemu Windows 7, biorąc pod uwagę linię OS = ” cygwin „.
- Cóż, IMO, jeśli ' zamierzasz coś zrobić, zrób to z włączonymi butami, a nie w połowie ed (ale ' nie ma tu ani tam dla nikogo innego). Dla mnie
bash
w systemie Windows wydaje się być w połowie sedem, kiedy działa doskonale w systemie GNU / Linux. - @NigelNquande Jak już napisałem, to ' mój zrzut ekranu. W każdym razie używam basha w systemie Windows tylko wtedy, gdy nie mam wyboru, a
cygwin
jest dość skuteczny w ukrywaniu podstawowego systemu operacyjnego. - @ user7000 Napisałem i nawet nie udało mi się go zainstalować z powodu niezgodności wersji eclipse , ale nie ' nie pamiętam, jaka to była wersja zaćmienia. Czy jest jednak udokumentowane, że działa z Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source = navbar
Answer
Specjalnie zbudowane środowisko IDE w pewnym sensie zniweczyłoby cel skrypty powłoki, nie wspominając o tym, że jest to prawie niemożliwe, ponieważ większość tego, co robi powłoka, to wywoływanie poleceń zewnętrznych – jak to debugować? Debugowanie z punktami kontrolnymi jest sprzeczne z intuicją dla powłoki – skrypty powłoki zwykle działają intensywnie na plikach, mają destrukcyjne skutki uboczne przy każdym wywołaniu. Skrypty BY DESIGN działają linia po linii, więc Twoje „środowisko” jest w rzeczywistości samym terminalem – zawsze możesz wyświetlać zmienne, środowisko jest zawsze dostępne dla Ciebie, nie ma „przepisanego przepływu” że trzeba by przerwać. Stopniowo robisz, co chcesz, wiersz po wierszu, sprawdzając za każdym razem, czy masz to, co chcesz, a następnie wklejasz te wiersze do skryptu, aby użyć go ponownie. Każde IDE właściwie wyłączałoby większość możesz zrobić w samej powłoce.
W przypadku w pełni kwalifikowanych języków skryptowych (Python, Perl itp.) masz ll to, ale bash / zsh / ksh / … są interaktywnym „klejem” dla innych poleceń i są ich własnymi debuggerami.
Jednak większość edytorów tekstu podświetli kod za Ciebie, a emacs
będzie (pod warunkiem, że znajdziesz odpowiednie pakiety, nigdy nie przejmowałem się tym w przypadku skryptów powłoki) zapewni programowalne uzupełnianie słów kluczowych. Uważam, że vi
też może to zrobić (nie zaczynaj tutaj ostrzeżenia).
Komentarze
- Jak zdefiniujesz ” w pełni kwalifikowany język skryptowy? ”
- @TrevorSullivan na swój własny sposób . Nie ' t, proszę, poddaj się nienawiści.
- @Det: To było uzasadnione pytanie – czy możemy ' nie wszyscy zgadzają się co do wspólnej, konkretnej definicji tego wyrażenia, więc równie dobrze możemy nie dyskutować na ten temat. ' Jestem po prostu ciekawy, co to znaczy tego wyrażenia.
- Nie ' zgadzam się, że IDE są sprzeczne z celem skryptów powłoki. Możesz chcieć wyczyścić skrypty powłoki (np. wbudowane obce zmienne, wykryć nieużywane zmienne – właśnie to ' m próbuję wyczyścić moje skrypty inicjalizacji Systemu V, które stają się niepotrzebnie długie, zwłaszcza gdy są powielane z istniejących przykłady).
- Dodałbym również, że IDE zapewnia inteligencję lub inne narzędzia, więc nie ' nie muszę ciągle googlować ani przeglądać stron podręcznika, aby zapamiętać niektóre rzeczy. Pozwala mi także trzymać wszystkie moje skrypty razem w projekcie, przekraczać linie, sprawdzać przychodzące argumenty, testować pętle i przełączniki, rozbijać potok do inspekcji itp.
Odpowiedź
Popieram również pomysł używania IDE dla skryptów basha.
Skrypty bash można pisać przy użyciu notatnika jupyter.
Notatnik jupyter można zainstalować za pomocą anaconda , natomiast jądro bash dla notebooka jupyter (lub jupyterlab) można zainstalować za pomocą następujących poleceń ( źródło ):
pip install bash_kernel
i
python -m bash_kernel.install
Następnie możesz wybrać bash w nowym programie uruchamiającym instancja nawigatora anaconda, jak pokazano poniżej.
Jedyną rzeczą jest to, że (o ile wiem) nie działa z poleceniami, które musisz wprowadzić do znaku zachęty, takich jak read
lub jakikolwiek inny argument przekazany po wywołaniu skryptu. Ale poza tym działa całkiem nieźle.
Odpowiedź
sam napotkałem ten problem, oznacza to, że szukałem IDE skryptu bash, w popularnym środowisku IDE jest wiele wtyczek podobnie jak zaćmienie i wiele innych. ale praca z IDE wymaga dużo pracy, aby zbudować małe skrypty bash. z drugiej strony praca z edytorami powoduje wiele błędów składniowych i stratę czasu, nie wspominając o tym, że nie jest to wcale zabawne.
więc znalazłem internetowe narzędzie do tworzenia skryptów bash, nazywa się http://bashops.net , to ” s online, mogę natychmiast rozpocząć pracę nad budowaniem skryptu bash, nie zajmując się żadną instalacją.
Odpowiedź
Chciałbym zaproponuj wydanie PyCharm Community z wtyczką BashSupport . Ma doskonałe funkcje IDE z intellij intellisense.
Odpowiedź
Rogalmic napisał wtyczki VSCode dla bashdb i zshdb .
Są one oparte na moich debuggerach dla bash i zsh , więc obsługują wiele skrajnych przypadków, którym brakuje, powiedzmy, debugera zaćmienia dla bash.
Odpowiedź
Wypróbuj tę witrynę. Szukam też tego samego i chcę najpierw przetestować skrypt i nie wpływać na mój system. To jest edytor online dla basha.