Odpowiedzi dotyczące debugowania Bash: kody wyjścia, argumenty i lintery
Podstawy Bash
Jak tryb debugowania bash pomaga, gdy skrypt się nie powiedzie?
Opcja -x sprawia, że Bash wypisuje każdą komendę wraz z rozwiniętymi argumentami tuż przed jej uruchomieniem, dzięki czemu widzisz dokładnie, gdzie skrypt popełnia błąd. Uruchamiasz go jako bash -x script.sh w WSL lub na systemie Linux, który posiadasz, a ustawienie -eu zatrzymuje działanie przy pierwszym błędzie lub nieustawionej zmiennej. W Pageferry karta Shell łączy ten ślad z rzeczywistym kodem wyjścia.
Czym jest linter bash i kiedy go uruchomić?
Linter bash to osobny program, który czyta Twój skrypt bez jego uruchamiania i wskazuje prawdopodobne błędy, np. niezamkniętą zmienną. Wybierasz własny linter, instalujesz go w WSL lub na swoim systemie Linux i prosisz agenta o jego uruchomienie za pomocą Shell. Karta następnie wyświetla jego komunikaty i kod wyjścia. Linter nie zastępuje testowego uruchomienia.
Jak przekazać argumenty do skryptu Bash?
Argumenty to wartości podawane po nazwie skryptu, np. bash script.sh jeden dwa, a skrypt odczytuje je jako $1, $2 itd. $# zawiera liczbę argumentów, a "$@" zawiera wszystkie jako osobne słowa. Aby dodać wymagane flagi i argumenty, sprawdź $# na początku, wypisz linię użycia na standardowy błąd i exit 2. Przestań przekazywać sekrety jako argumenty wiersza poleceń: inni użytkownicy widzą je na liście procesów.
Co oznacza kod wyjścia 127 w Bash?
Kod wyjścia 127 oznacza, że komenda nie została znaleziona, zwykle z powodu literówki, braku zainstalowanego programu lub PATH, który jej nie zawiera. Powłoka wypisuje komunikat, a Pageferry pokazuje ten sam komunikat i liczbę w karcie Shell. Skrypt Bash uruchamiający aplikacje z flagami powinien sprawdzać kod wyjścia każdej uruchamianej aplikacji.
Co oznacza kod wyjścia 126 w Bash?
Kod 126 oznacza, że plik został znaleziony, ale nie może być wykonany, zwykle z powodu braku uprawnień do wykonania lub faktu, że nie jest to program. W przypadku własnego skryptu chmod +x script.sh dodaje uprawnienie, po czym ./script.sh może go uruchomić przez linię shebang. Jeśli masz wątpliwości, uruchom bash script.sh najpierw i odczytaj kod wyjścia w karcie.
Korzystanie z Pageferry
Czy codedguru.com to oficjalna strona Pageferry?
Tak, codedguru.com to oficjalna strona Pageferry. Przycisk pobrania udostępnia oryginalny program instalacyjny o rozmiarze około 34 MB, a przed uruchomieniem możesz porównać jego sumę kontrolną SHA-256 z opublikowanym manifestem. SmartScreen w Windows może ostrzegać, ponieważ instalator nie jest jeszcze podpisany cyfrowo. Pytania dotyczące aplikacji kieruj przez przycisk Send feedback znajdujący się wewnątrz niej.
Czy agent może pracować ze skryptami Bash na systemie Linux?
Tak, poprzez WSL na Twoim własnym komputerze lub przez SSH do systemu Linux, który posiadasz. Pageferry to aplikacja dla Windows 10 i 11, więc rozmawiasz na Windows, narzędzia plikowe działają w folderze roboczym czatu, a Shell uruchamia komendy w wybranym przez Ciebie środowisku. Używaj tylko maszyn, którym masz prawo zarządzać, i najpierw przetestuj na kopii.
Czy wyniki są zawsze poprawne?
Nie. Agent uruchamia komendy i pokazuje rzeczywiste wyjście, ale skrypt może nadal być błędny, a model może źle zinterpretować problem. Czytaj każdą różnicę, uruchom skrypt z wartościami testowymi i samodzielnie sprawdź kod wyjścia. Pageferry umieszcza fakty w karcie; decyzja o zaakceptowaniu zmiany należy do Ciebie, a odrzucona edycja nic nie zmienia.
Jaka jest różnica między Ask first a Plan only?
Ask first to tryb, w którym agent może działać, ale zatrzymuje się przed każdą czynnością zmieniającą coś, np. zapisem pliku, a przy edycji widzisz różnice i akceptujesz lub odrzucasz je. Plan only tworzy plan i nic nie uruchamia: żadnych komend ani zmian plików. Przełączasz tryb, aby zrealizować plan. Auto-run działa natychmiast.
Czy mogę uruchamiać wiele zadań równolegle?
Tak, narzędzie zadania uruchamia podagentów równolegle, a w skrypcie Bash możesz uruchamiać zadania współbieżne w tle za pomocą & i użyć wait. Agregacja kodów wyjścia jest wtedy Twoim zadaniem: poczekaj na każdy identyfikator procesu i samodzielnie zbierz jego status, ponieważ $? zawiera tylko status ostatniej komendy. Przetestuj taki skrypt na własnym komputerze.
Modele, prywatność i pobieranie
Czy moje pliki opuszczają komputer przy użyciu modelu w chmurze?
Tak, przy modelu w chmurze prompt, w tym tekst plików odczytywanych przez agenta, trafia do tego dostawcy. Przy modelu lokalnym nic nie opuszcza maszyny. W obu przypadkach czaty, foldery robocze i klucze API pozostają na komputerze, a sekrety w wyjściu narzędzi są maskowane przed dotarciem do modelu. Wybierasz punkt końcowy, więc wybierz go z myślą o swoim skrypcie.
Czy instalator jest podpisany cyfrowo?
Nie, instalator nie jest jeszcze podpisany cyfrowo, więc Windows SmartScreen może ostrzegać podczas jego uruchamiania. Porównaj sumę kontrolną SHA-256 pobranego pliku z opublikowanym manifestem, a dopiero potem wybierz Uruchom mimo to pod Więcej informacji. W Windows polecenie certutil -hashfile z ścieżką do pliku i SHA256 wypisuje wartość do porównania.
Jaki jest rozmiar programu instalacyjnego?
34 MB to rozmiar programu instalacyjnego, który udostępnia przycisk pobierania. Istnieje również wersja przenośna w jednym pliku .exe o rozmiarze około 25 MB, ale przycisk jej nie udostępnia. Oba są przeznaczone dla Windows 10 i 11, a bieżąca wersja to 2.9.26. Po zainstalowaniu aplikacja pokazuje przycisk Aktualizacja, gdy nowa wersja jest gotowa.
Czy Pageferry wymaga konta lub połączenia z siecią?
Nie jest potrzebne konto do uruchomienia aplikacji. Czy potrzebne jest połączenie z siecią, zależy od modelu: dostawca AI w chmurze go wymaga, model lokalny nie, a wyszukiwanie w sieci, sprawdzanie aktualizacji i sterowanie czatami z przeglądarki na telefonie to opcjonalne funkcje sieciowe. Sterowanie telefonem wykorzystuje jedno połączenie wychodzące i można je wyłączyć.