Execută script Bash: de la deschiderea folderului până la codul de ieșire
03
Rulează un script
Rulează un script Bash cu argumente în WSL sau prin SSH
Un script Bash poate fi pornit în trei moduri: `bash script.sh arg1 arg2`, `./script.sh` după `chmod +x` (care funcționează datorită liniei shebang) sau prin builtin-ul `exec`, care înlocuiește shell-ul și nu se întoarce niciodată. Prima formă este cea mai ușor de început, deoarece nu necesită modificarea permisiunilor. Shell execută comanda în mediul ales de tine, care este WSL pe PC-ul tău sau un sistem Linux pe care îl deții, accesat prin SSH, iar cardul din chat afișează ieșirea reală și codul de ieșire. Tu decizi argumentele, așa că poți testa cazul normal și cazul de eșec într-o singură conversație. Utilizatorii întreabă adesea ce formă să aleagă: folosește `bash script.sh` în timp ce testezi, deoarece funcționează chiar și când fișierul nu are permisiunea de executare, și treci la `./script.sh` odată ce scriptul este finalizat și începe cu linia shebang. Indiferent de forma aleasă, starea de ieșire este același număr, de la 0 la 255, iar 0 înseamnă întotdeauna că scriptul s-a încheiat cu succes.
01
Deschide folderul
Alege folderul care conține scriptul tău ca folder de lucru; instrumentele de fișiere precum read_file și grep funcționează în interiorul lui. Instrumentele de fișiere funcționează în acel folder, în timp ce Shell, web și SSH nu sunt limitate la el.
02
Alege un mod de aprobare
Folosește Ask first pentru a vedea fiecare modificare ca o diferență, sau Plan only pentru a citi mai întâi un plan. Auto-run acționează imediat. Ask first se oprește doar înainte de acțiunile care modifică ceva.
03
Solicită o execuție
Descrie execuția în cuvinte simple, de exemplu: rulează scriptul cu argumentul test. Menționează WSL sau serverul tău dacă ai ambele. Numește scriptul și argumentele sale exact așa cum sunt.
04
Citește rezultatul
Deschide cardul pentru a vedea ieșirea și codul de ieșire real, apoi acceptă sau respinge orice editare. Un număr diferit de zero oferă informații. Rulează din nou după fiecare editare acceptată. Compară-l cu rezultatul pe care îl așteptai.
Un mic script de exemplu
Pageferry · Rulează exemplul● Ask first
Rulează greet.sh cu argumentul test, apoi fără niciun argument.
Shellbash greet.sh testexit 0
Shellbash greet.shexit 2
read_filegreet.shread
grepUsage1 match
așteaptă aprobarea ta înainte de următorul pasRespingeAcceptă
greet.sh
#!/usr/bin/env bash
# greet.sh - print a greeting a few times
set -eu
if [ "$#" -lt 1 ]; then
echo "Usage: $0 NAME [COUNT]" >&2
exit 2
fi
name="$1"
count="${2:-1}"
for i in $(seq 1 "$count"); do
echo "Hello, $name ($i)"
done
exit 0
greet.sh se oprește cu o linie de utilizare și codul de ieșire 2 când numele lipsește, preia un număr opțional cu o valoare implicită de 1 și afișează doar saluturi într-o buclă. Citește-l o dată înainte să-l rulezi: nu există sudo, nici download și nimic care să mute sau să șteargă un fișier, așa că este inofensiv să-l testezi pe orice mașină pe care o deții. Linia cu linia: shebang numește interpretul, set -eu se oprește la erori și variabile nedefinite, testul $# numără argumentele, iar bucla for doar afișează.
Rulează un script în patru pași simpli
Creează fișierul script
Începe cu un folder de lucru gol. Cere agentului să scrie exemplul de mai sus, iar write_file creează greet.sh în acel folder. Deschide cardul și citește fișierul linie cu linie: prima linie este shebang care numește interpretul, set -eu se oprește la erori și variabile nedefinite, iar verificarea $# protejează restul de lipsa unui nume. Sub Ask first, noul fișier așteaptă acordul tău înainte de a fi scris. Nimic nu a fost executat încă. Ramura de utilizare a acestui script alege 2 pentru utilizare greșită, care este o convenție comună. Acceptă fișierul doar când înțelegi fiecare linie, iar dacă nu, cere agentului să îl explice. O editare respinsă lasă folderul neschimbat.
Rulează-l și citește codul de ieșire
Utilizatorii care caută „bash execute script” de obicei vor un singur rând: `bash greet.sh test`. Cere agentului să-l ruleze, iar Shell pornește comanda în mediul chat-ului tău, cum ar fi WSL, și trimite înapoi ieșirea reală și codul de ieșire real. Extinde cardul pentru ieșirea completă. Apoi cere aceeași execuție fără argument, și ar trebui să vezi linia de utilizare și codul de ieșire 2. Codul de ieșire pentru aplicațiile CLI este un număr de la 0 la 255 pe care apelantul îl citește, iar 0 înseamnă succes. Codul de ieșire 127 înseamnă că o comandă nu a fost găsită, iar 126 înseamnă că un fișier nu poate fi executat, așa că aceste două numere indică o greșeală de tastare, un program lipsă sau o permisiune de executare lipsă.
Citește argumentele din interiorul scriptului
read_file arată scriptul și grep găsește unde sunt folosite $1 și $2, așa că poți verifica dacă fiecare argument are o valoare implicită sau un mesaj de eroare. Iată cum se analizează argumentele opționale: scriptul iterează cu getopts, iar cu doar una sau două valori, $1 simplu și ${2:-1} sunt suficiente. Alias-urile cu argumente nu se comportă ca funcțiile, deoarece un alias înlocuiește doar cuvântul tastat cu text, așa că folosește o funcție când valorile trebuie să meargă în mijloc. Cere agentului să modifice un lucru, de exemplu valoarea implicită a numărului, și citește diferența pe care o arată edit_file. Apoi rulează din nou scriptul și compară noul cod de ieșire cu cel vechi. Plan only poate lista parametrii pe care îi înțelege scriptul fără a executa nimic.
Rulează același script pe un server pe care îl deții
Aceiași pași funcționează când mediul de lucru este un sistem Linux pe care îl deții, accesat prin SSH. Instrumentele de fișiere continuă să funcționeze în folderul de lucru al chat-ului, în timp comenzile Shell rulează în mediul ales de tine, așa că verifică la ce se referă un card. Builtin-ul exec, pe care oamenii îl caută ca „bash exec script”, înlocuiește shell-ul cu o altă comandă și nu se întoarce niciodată, așa că nimic după el nu se execută, iar codul de ieșire este cel al noii comenzi. Ține o copie înainte ca un script să mute sau să șteargă fișiere, rulează-l mai întâi cu echo ca un test uscat, și folosește doar mașini pe care ai permisiunea să le administrezi. Citește cardul final înainte să închizi chat-ul. Când transmiți toate valorile către o altă comandă, scrie "$@" între ghilimele duble astfel încât fiecare valoare să își păstreze forma.