Scripts uitvoeren
Shell voert je Bash-script uit in WSL of via SSH en toont de echte exitcode in de chat.
Een Bash-exitcode is het getal dat een opdracht retourneert bij beëindiging: 0 voor succes, 1 tot 255 voor fout. Pageferry voert je script uit met Shell, leest dat getal uit het echte proces en plaatst het in een chatkaart naast de output. Het bewerkt ook bestanden en toont eerst de diff.
Shell voert je Bash-script uit in WSL of via SSH en toont de echte exitcode in de chat.
read_file en grep tonen je script in de chat, zodat je kunt vinden waar $1 en $2 worden gebruikt.
edit_file stelt een wijziging voor en toont de diff. Bij Ask first wacht het op jouw goedkeuring.
Elke actie wordt een kaart in de chat. Shell rapporteert de echte exitcode, edit_file toont een diff, en Ask first wacht op jouw goedkeuring voordat er iets verandert. Open een kaart om de volledige output of de volledige diff te lezen.
bash check.sh a bexit 0bash check.shexit 2check.shlezenexit3 matchesbash -n check.shexit 0Je vraagt de agent te onderzoeken wat er gebeurt als check.sh geen argument krijgt. read_file opent het script, en Shell voert bash check.sh uit zonder argumenten. De kaart toont de echte output en de exitcode, die 2 is als het script zijn gebruiksinstructies naar stderr schrijft en eindigt met exit 2. De bash-exitcode van de laatste opdracht staat in $?, en de aanroeper ziet alleen dat getal, dus een script dat eindigt met een duidelijke code is makkelijker te testen dan er eentje die altijd 1 retourneert. Shell voert het script daarna opnieuw uit met twee waarden, en de kaart zou 0 moeten tonen. Als de codes je verrassen, lees de kaart, laat edit_file een fix voorstellen onder Ask first en bekijk de diff.
Je typt “verklari getopt aan mij” en de agent antwoordt in gewone woorden: getopts is een Bash-inbouwopdracht voor korte opties zoals -v of -f bestand, terwijl getopt een apart commando is dat ook lange opties zoals --bestand aankan en zich tussen systemen anders gedraagt. Dan opent read_file je script, edit_file voegt een getopts-lus toe en je ziet de diff. Shell voert het script uit met -v, met -f en met een verkeerde optie, en elke kaart heeft zijn eigen exitcode. Een verkeerde optie zou moeten eindigen met 2, de gebruikelijke code voor verkeerd gebruik. Voor een handvol opties is een while-lus met case en shift voldoende, dus vraag om die versie als je die prefereert. Accepteer de diff pas nadat je hem hebt gelezen.
Argumenten met spaties doorgeven aan een script faalt als de waarden niet tussen aanhalingstekens staan, omdat de shell ze opsplitsen in aparte woorden. De agent leest het bestand met read_file, vindt de niet-aangehaalde $1 en $@, en edit_file stelt dubbele aanhalingstekens rondom voor. Shell voert het script daarna uit met een waarde zoals "twee woorden", en de output toont of het als één regel of als twee aankomt. Een van de trucs om opdrachtregelargumenten te beheren is shift, die de eerste waarde verwijdert zodat een lus door de rest kan lopen, en de agent kan dit toevoegen in dezelfde diff. Onder Ask first wacht de bewerking op jou. Bekijk de diff, voer de test opnieuw uit en vergelijk de twee outputs zelf.
Iedereen die zoekt naar “bash exit script” is meestal op zoek naar de exit-inbouwopdracht: exit N beëindigt het script met status N, terwijl return N alleen een functie verlaat. De agent kan set -eu en set -o pipefail bovenaan toevoegen, zodat het script stopt bij fouten en bij niet-gedefinieerde variabelen, en voert daarna het bestand uit met bash -n voor een syntaxcontrole en met bash -x om elke opdracht af te drukken. Als return niet de status van de laatste opdracht geeft, liep er meestal een andere opdracht ertussen, omdat $? alleen de exitcode van de meest recente opdracht vasthoudt. De Shell-kaart toont de trace. Lees deze van bovenaf, vergelijk hem met het script en beslis of de bewerking blijft staan.
Pageferry is een desktopapp voor Windows, geen gehoste service of plugin. Het is bedoeld voor je eigen bestanden, je eigen pc en servers die je mag beheren. Je houdt het werk binnen dat bereik, omdat de agent dit niet afdwingt, en Shell, web en SSH zijn niet beperkt tot de werkmap. Code en resultaten kunnen fout zijn, dus lees de diff en test. Geheimen die in tooloutput verschijnen, worden geredigeerd voordat ze het model bereiken.