Otwórz folder
Wybierz folder ze skryptem jako folder roboczy; narzędzia do plików, takie jak read_file i grep, działają w jego obrębie. Narzędzia do plików są ograniczone do tego folderu, podczas gdy Shell, wyszukiwanie sieciowe i SSH nie są.
Skrypt Bash można uruchomić na trzy sposoby: bash script.sh arg1 arg2, ./script.sh po nadaniu uprawnień chmod +x (działa dzięki linii shebang) lub przez polecenie wewnętrzne exec, które zastępuje powłokę i nie zwraca sterowania. Pierwsza forma jest najłatwiejsza, bo nie wymaga zmiany uprawnień. Shell wykonuje polecenie w wybranym środowisku – WSL na Twoim komputerze lub systemie Linux połączonym przez SSH – a karta w czacie pokazuje rzeczywiste dane wyjściowe i kod wyjścia. Ty decydujesz o argumentach, więc możesz przetestować scenariusz poprawny i błąd w jednej rozmowie. Często pytają, którą formę wybrać: użyj bash script.sh podczas testów, ponieważ działa nawet bez uprawnień wykonania, a przełącz się na ./script.sh, gdy skrypt jest już gotowy i zaczyna się od shebanga. Niezależnie od formy, kod wyjścia to liczba od 0 do 255, a 0 zawsze oznacza pomyślne zakończenie.
Wybierz folder ze skryptem jako folder roboczy; narzędzia do plików, takie jak read_file i grep, działają w jego obrębie. Narzędzia do plików są ograniczone do tego folderu, podczas gdy Shell, wyszukiwanie sieciowe i SSH nie są.
Użyj opcji Ask first, aby zobaczyć każdą zmianę jako różnicę, lub Plan only, aby najpierw przeczytać plan. Auto-run wykonuje akcję natychmiast. Ask first pauzuje tylko przed działaniami, które coś zmieniają.
Opisz uruchomienie prostymi słowami, np.: uruchom skrypt z argumentem test. Wymień WSL lub swój serwer, jeśli posiadasz oba. Wymień nazwę skryptu i jego argumenty dokładnie.
Otwórz kartę, aby zobaczyć dane wyjściowe i prawdziwy kod wyjścia, a następnie zaakceptuj lub odrzuć każdą edycję. Liczba różna od zera to informacja. Uruchom ponownie po każdej zaakceptowanej edycji. Porównaj go z oczekiwanym wynikiem.
bash greet.sh testexit 0bash greet.shexit 2greet.shreadUsage1 match#!/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 0greet.sh kończy się komunikatem o użyciu i kodem wyjścia 2, gdy brakuje nazwy, przyjmuje opcjonalny licznik z domyślną wartością 1 i wypisuje tylko powitania w pętli. Przeczytaj go przed uruchomieniem: nie ma sudo, pobierania ani niczego, co przenosi lub usuwa pliki, więc jest bezpieczny do przetestowania na dowolnym komputerze, którym dysponujesz. Linia po linii: shebang określa interpreter, set -eu zatrzymuje działanie przy błędach i nieustawionych zmiennych, sprawdzenie $# zlicza argumenty, a pętla for tylko wypisuje dane.
Zacznij od pustego folderu roboczego. Poproś agenta o napisanie powyższego przykładu, a write_file tworzy greet.sh w tym folderze. Otwórz kartę i przeczytaj plik linia po linii: pierwsza linia to shebang określający interpreter, set -eu zatrzymuje skrypt przy błędach i nieustawionych zmiennych, a sprawdzenie $# chroni resztę przed brakiem nazwy. W trybie Ask first nowy plik czeka na Twoją zgodę przed zapisaniem. Nic jeszcze nie zostało uruchomione. Gałąź użycia tego skryptu wybiera 2 dla nieprawidłowego użycia, co jest powszechną konwencją. Zaakceptuj plik tylko wtedy, gdy rozumiesz każdą linię, a jeśli nie, poproś agenta o jej wyjaśnienie. Odrzucona edycja pozostawia folder niezmieniony.
Osoby wyszukujące frazę „bash execute script” zwykle chcą uzyskać jedną linię: bash greet.sh test. Poproś agenta o jego uruchomienie, a Shell uruchamia polecenie w środowisku Twojego czatu, takim jak WSL, i zwraca rzeczywiste dane wyjściowe oraz prawdziwy kod wyjścia. Rozwiń kartę, aby zobaczyć pełne dane wyjściowe. Następnie poproś o to samo uruchomienie bez argumentu i powinieneś zobaczyć komunikat o użyciu oraz kod wyjścia 2. Kod wyjścia dla aplikacji wiersza poleceń to liczba od 0 do 255, którą odczytuje wywołujący, a 0 oznacza sukces. Kod wyjścia 127 oznacza, że nie znaleziono polecenia, a 126 oznacza, że plik nie może być wykonany, więc te dwie liczby wskazują na literówkę, brakujący program lub brakujące uprawnienia do wykonania.
read_file pokazuje skrypt, a grep znajduje miejsca, w których używane są $1 i $2, więc możesz sprawdzić, czy każdy argument ma wartość domyślną lub komunikat o błędzie. Oto sposób na analizę opcjonalnych argumentów: skrypt pętli z getopts, a przy jednej lub dwóch wartościach wystarczają zwykłe $1 i ${2:-1}. Alias z argumentami nie zachowuje się jak funkcje, ponieważ alias tylko zastępuje wpisaną słowo tekstem, więc użyj funkcji, gdy wartości muszą trafić w środek. Poproś agenta o zmianę jednej rzeczy, np. wartości domyślnej licznika, i przeczytaj różnicę, którą pokazuje edit_file. Następnie uruchom skrypt ponownie i porównaj nowy kod wyjścia ze starym. Plan only może wylistować parametry, które skrypt rozumie, bez uruchamiania czegokolwiek.
Te same kroki działają, gdy środowiskiem roboczym jest system Linux, którym dysponujesz, do którego masz dostęp przez SSH. Narzędzia do plików nadal działają w folderze roboczym czatu, podczas gdy polecenia Shell wykonują się w wybranym przez Ciebie środowisku, więc sprawdź, do którego odnosi się karta. Wbudowane polecenie exec, które ludzie wyszukują jako „bash exec script”, zastępuje powłokę innym poleceniem i nie zwraca sterowania, więc nic po nim nie zostanie uruchomione, a kod wyjścia jest kodem nowego polecenia. Zachowaj kopię przed skryptem, który przenosi lub usuwa pliki, uruchom go najpierw z echo jako próbą, i używaj tylko maszyn, którym możesz zarządzać. Przeczytaj ostatnią kartę przed zamknięciem czatu. Gdy przekazujesz wszystkie wartości do innego polecenia, napisz "$@" w podwójnych cudzysłowach, aby każda wartość zachowała swój kształt.