Czy są jakieś dobrze znane i używane IDE skryptów powłoki dla Un * x?


23

Czy są jakieś środowiska IDE ukierunkowane na skrypty powłoki, w szczególności skrypty bash i zsh? Oznacza to wyróżnianie składni skryptów powłoki i, co ważniejsze, debugowanie środowisk z funkcjami takimi jak punkty przerwania, kontrola i modyfikacja zmiennych itp., Podobnie jak te dostępne dla zwykłych języków programowania, takich jak Python, Java i C.

Na przykład Microsoft Windows Powershell ma IDE, takie jak Powershell Plus i PowerGui .

Googling przyniósł kombinację ShellEd , wtyczki Eclipse do edycji skryptów powłoki oraz BashEclipse , debuggera Bash, który współpracuje z ShellEd; Jeszcze tego nie próbowałem.

Czy istnieją inne IDE skryptów powłoki dla Un * x podobne do tej kombinacji? Czy ktoś ma z nimi jakieś doświadczenie?


10
Nie głosowałem, ale ktokolwiek to zrobił, ponieważ nie zadajesz pytań. Na jedyne pytanie w poście można odpowiedzieć tak / nie. O co właściwie pytasz Jak działają te programy? Co oni robią? Co dokładnie próbujesz zrobić?
terdon

10
Bash IDE? Rozszczepienie jądrowe w celu zagotowania wody na herbatę ...
jasonwryan

5
W rzeczywistości posiadanie debuggera bash jest bardzo dobrym pomysłem - tak jak w każdym języku programowania, twój kod będzie lepszy, jeśli będziesz powoli przechodzić przez każdą linię w debuggerze, badać zmienne, myśleć o tym, co robi kod itp. Debuger to najlepszy sposób, aby to zrobić, nawet jeśli twój program lub skrypt nie zawiera błędów. Możesz uzyskać bashdb w większości dystrybucji, co pozwoli ci to zrobić w trybie tekstowym. Ponadto starzejący się debugger graficzny DDD może być przystosowany do pracy z bashdb, dzięki czemu masz bardziej „wizualne” wrażenia.
Stabledog

1
Tak, z pewnością można to zrobić. I wielu tak robi, i tak sobie radzą przez lata. Jeśli ci to odpowiada, nie próbowałbym cię przekonać inaczej. Moim zdaniem jest to gorsze podejście, które opodatkuje mózg przy zadaniach o niskiej wartości (takich jak mentalne śledzenie wartości zmiennych itp.). Ideą dobrego interfejsu debugowania jest uwolnienie tych cykli na myślenie o programie. Z mojego doświadczenia wynika, że ​​to ma znaczenie - masz więcej uwagi, aby skupić się na myśleniu o tym, co robi program, jeśli wydajesz mniej na takie rzeczy.
Stabledog

1
Dla tych z nas, którzy mają czajniki elektryczne lub urządzenia elektryczne w USA lub Europie, duża część naszej produkcji energii elektrycznej z obciążenia podstawowego jest zasilana przez elektrownie jądrowe, więc kiedy gotujemy wodę na herbatę, przynajmniej częściowo używamy rozszczepienia jądrowego.
Andrew Janke,

Odpowiedzi:


14

Nie powiedziałbym, że jest dobrze znany lub dobrze używany, ale możesz rzucić okiem na basheclipse :

wprowadź opis zdjęcia tutaj

Muszę przyznać, że nie mam doświadczenia z basheclipse, a nawet nie udało mi się go zainstalować z powodu niedopasowania wersji eclipse.

Z drugiej strony używam funkcji debugowania specyficznych dla bash i ksh93, zwłaszcza tych trap ERRi trap DEBUGtych, ale nie debugerów opartych na nich kshdb i bashdb


Ironiczne jest dla mnie to, że zrzut ekranu ma okno w stylu Windows.
Agi Hammerthief,

@NigelNquande Szczerze mówiąc, nie jestem użytkownikiem basheclipse (ani zaćmienia w tym zakresie). Zdecydowanie używam funkcji debugowania udostępnianych przez ksh93 i bash, ale nie ma 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ę wiersz OS = „cygwin”.
jlliagre

Cóż, IMO, jeśli masz zamiar coś zrobić, rób to z założonymi butami, a nie na wpół ed (ale to nie jest ani tutaj, ani tam dla nikogo innego). Dla mnie bashWindows wydaje się pół- sed, kiedy działa doskonale w GNU / Linux.
Agi Hammerthief,

@NigelNquande Jak napisałem, nie jest to mój zrzut ekranu. W każdym razie używam bash w systemie Windows tylko wtedy, gdy nie mam wyboru i cygwindość skutecznie ukrywa podstawowy system operacyjny.
jlliagre

1
@ user7000 Napisałem, a nawet nie udało mi się go zainstalować z powodu niedopasowania wersji zaćmienia, ale nie pamiętam, jaka to była wersja zaćmienia. Jest udokumentowany do pracy z Eclipse 4.5.2: sourceforge.net/projects/basheclipse/files/?source=navbar
jlliagre

8

Specjalnie zbudowane IDE zniszczyłoby cel skryptów powłoki, nie wspominając o tym, że jest to prawie niemożliwe, ponieważ większość tego, co robi powłoka, wywołuje zewnętrzne polecenia - jak to debugować? Debugowanie za pomocą punktów kontrolnych jest sprzeczne z intuicją dla powłoki - skrypty powłoki zwykle działają silnie na plikach, a zatem wywołują destrukcyjne skutki uboczne przy każdym wywołaniu. Skrypty WEDŁUG PROJEKTU działają wiersz po wierszu, więc twoje „środowisko” jest w rzeczywistości samym terminalem - zawsze możesz echa zmiennych, twoje środowisko jest zawsze dla ciebie, nie ma „zalecanego przepływu”, który musiałbyś przerwać. Stopniowo robisz wszystko, co chcesz, wiersz po wierszu, za każdym razem sprawdzając, czy masz to, czego chcesz, a następnie wklej te wiersze do skryptu, aby użyć ponownie.

W przypadku w pełni kwalifikowanych języków skryptowych (Python, Perl itp.) Masz to wszystko, 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 dla Ciebie i emacs(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. Wierzę, że vimoże to zrobić (proszę, nie zaczynaj flamewaru tutaj).


2
Jak zdefiniować „w pełni kwalifikowany język skryptowy?”
Trevor Sullivan,

1
@TrevorSullivan na swój sposób. Proszę, nie poddawaj się nienawiści.
Det

1
@Det: To było uzasadnione pytanie - jeśli nie wszyscy możemy zgodzić się na wspólną, konkretną definicję frazy, równie dobrze możemy nie dyskutować na ten temat. Jestem ciekawy, co należy rozumieć przez to zdanie.
Trevor Sullivan

3
Nie zgadzam się, że IDE pokonują cel skryptów powłoki. Możesz wyczyścić skrypty powłoki (np. Wbudowane zmienne zewnętrzne, wykryć nieużywane zmienne - to właśnie próbuję wyczyścić moje skrypty początkowe System V, które stają się niepotrzebnie długie, zwłaszcza gdy są powielane z istniejących przykładów).
Sridhar Sarnobat,

2
Dodałbym to również, a IDE zapewnia intellisense lub inne narzędzia, więc nie muszę googlować ani przeglądać stron podręcznika, aby zapamiętać pewne rzeczy. Pozwala mi to również przechowywać wszystkie skrypty w jednym projekcie, przekraczać linie, sprawdzać przychodzące argumenty, testować pętle i przełączniki, rozbijać rurę w celu kontroli itp.
cjbarth

2

Popieram również pomysł użycia IDE do skryptów bash.

Za pomocą notatnika jupyter można pisać skrypty bash.

Notatnik jupyter można zainstalować za pomocą anakondy, 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 na nowej instancji programu uruchamiającego anaconda navigator, jak pokazano poniżej.

Jedyną rzeczą jest to, że (o ile mi wiadomo) nie działa z poleceniami, które należy wprowadzić w wierszu polecenia, takimi jak readjakikolwiek inny argument przekazywany po wywołaniu skryptu. Ale poza tym działa całkiem dobrze.

wprowadź opis zdjęcia tutaj


1

sam zetknąłem się z tym problemem, co oznacza, że ​​szukałem IDE skryptu bash, istnieje wiele wtyczek w popularnym IDE, podobnie jak eclipse i wiele innych. ale uważam, że wiele pracy zajmuje się IDE tylko po to, aby budować 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 wcale nie jest fajna.

więc znalazłem narzędzie online do tworzenia skryptów bash, o nazwie http://bashops.net , jest online, od razu można rozpocząć pracę nad budowaniem skryptu bash, bez zajmowania się żadną instalacją.


1

Rogalmic napisał wtyczki VSCode dla bashdb i zshdb .

Opierają się one na moich debuggerach dla bash i zsh , więc obsługują wiele przypadków krawędzi, których brakuje, powiedzmy, debugger eclipse dla bash.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.