Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator skryptu bash

Szkielet skryptu z obsługą argumentów i logowaniem

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Ustaw opcje i kliknij „Generuj skrypt”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator skryptu bash — dobry start bez błędów

Wiele skryptów bash ma te same problemy: brak obsługi błędów, brak logowania i nieczytelna obsługa argumentów. Ten generator tworzy poprawny szkielet, który łatwo rozbudować.

Co zawiera szkielet?

ElementRola
#!/usr/bin/env bashprzenośny shebang
set -euo pipefailprzerywanie przy błędach i niezdefiniowanych zmiennych
log()spójne komunikaty z datą
usage()komunikat pomocy i kod wyjścia
main()punkt wejścia i czytelna struktura

Dobre praktyki

  • Zawsze cytuj zmienne: "$zmienna", żeby uniknąć problemów ze spacjami.
  • Używaj [[ ]] zamiast [ ] — bezpieczniejsze porównania.
  • Sprawdzaj istnienie plików przed ich użyciem ([[ -f "$plik" ]]).
  • Logi kieruj na stderr, a dane na stdout.
  • Ustawiaj kody wyjścia: 0 = sukces, 1+ = błąd.

Jak działa generator skryptu bash

Generator nie uruchamia żadnego kodu i nie wysyła niczego na serwer — całość dzieje się w przeglądarce. Jego działanie sprowadza się do złożenia tekstu skryptu z gotowych bloków: nagłówka, definicji funkcji i sekcji obsługi argumentów. Każda opcja, którą zaznaczysz, włącza albo wyłącza konkretny fragment, a wynik dostajesz jako zwykły tekst — do skopiowania albo zapisania w pliku z rozszerzeniem .sh.

Kolejność bloków nie jest przypadkowa, bo odpowiada kolejności wykonywania. Shebang musi stać w pierwszej linii, bo to on decyduje o interpreterze. Zaraz po nim wchodzi set -euo pipefail — zanim wykona się jakiekolwiek polecenie, które mogłoby zawieść. Dopiero dalej definiowane są stałe i funkcje pomocnicze, a na samym końcu funkcja main oraz jej wywołanie z przekazaniem argumentów. Dzięki tej kolejności main korzysta wyłącznie z funkcji, które już istnieją.

Rozdzielenie strumieni wynika z konwencji, nie z magii interpretera: komunikaty diagnostyczne idą na stderr, a właściwe dane na stdout. Przekierowanie wyniku do pliku nie zaśmieca go wtedy logami, a użytkownik nadal widzi komunikaty na ekranie. Funkcja usage() wypisuje pomoc i kończy pracę niezerowym kodem, więc błędne wywołanie da się odróżnić od błędu działania skryptu choćby w skryptach nadrzędnych.

Przykład krok po kroku: od formularza do działającego skryptu

  1. W polu nazwy wpisujesz backup.sh, a w opisie jedno zdanie, na przykład „kopiuje wskazane pliki”. Opis trafia później do komentarza nagłówkowego i do komunikatu pomocy.
  2. Zaznaczasz opcje: tryb ścisły, logowanie z datą i obsługę argumentów z funkcją usage(). Generator składa z tych wyborów jeden spójny tekst, bez duplikatów i bez pustych miejsc.
  3. Kopiujesz wynik do pliku backup.sh i nadajesz mu prawo wykonywania poleceniem chmod +x backup.sh. Od tego momentu uruchamiasz go jako ./backup.sh.
  4. Wywołanie bez argumentów: $# wynosi 0, warunek [[ $# -lt 1 ]] jest prawdziwy, więc usage() wypisuje pomoc i kończy pracę kodem 2 — to typowy kod dla błędnego wywołania.
  5. Wywołanie z jednym argumentem wskazującym na nieistniejący plik: $# wynosi 1, sprawdzenie [[ -f "$1" ]] jest fałszywe, log() wypisuje komunikat błędu na stderr, a skrypt kończy się kodem 1.
  6. To samo wywołanie ze ścieżką do istniejącego pliku: warunek jest prawdziwy, log() potwierdza wykonanie, a skrypt kończy pracę kodem 0, czyli sukcesem. Ten sam plik zachowuje się identycznie przy kolejnych uruchomieniach, bo nie zależy od stanu przeglądarki.

Konstrukcje bash w szkielecie — ściągawka

ElementCo robiNa co uważać
set -eprzerywa skrypt także w środku funkcjinie działa w warunkach if, while ani po operatorze || — tam błąd trzeba obsłużyć jawnie
set -udotyczy również parametrów funkcji i zmiennych pozycyjnychzapis ${zmienna:-} podaje wartość domyślną i wyłącza kontrolę w tym jednym miejscu
set -o pipefailzmienia sposób oceny całego potokubez tej opcji liczy się wyłącznie kod ostatniej komendy, wcześniejsze błędy znikają
"$@"przekazuje argumenty jeden do jednego, z zachowaniem cudzysłowów"$*" skleja je w jeden łańcuch — efekt bywa inny, niż zakładasz
[[ ... ]]porównania i dopasowanie wzorców w bashunie jest przenośne do sh ani dash, dlatego shebang musi wskazywać bash
localogranicza zasięg zmiennej do funkcjipoza funkcją zwraca błąd, a w sh nie istnieje
trapreakcja na sygnał albo na zakończenie skryptutrzeba samemu wskazać, co ma zostać posprzątane, np. pliki tymczasowe

Jak korzystać z gotowego szkieletu

  • Zapisuj wynik od razu do pliku .sh — wklejanie kodu przez schowek do edytora bez zapisu na dysk kończy się zwykle utratą formatowania i mieszaniem znaków nowej linii.
  • Nie usuwaj funkcji main() — trzymanie logiki w jednym miejscu i wywołanie jej na końcu pozwala dopisać do skryptu kolejny krok bez przebudowy całości.
  • Rozbudowuj o jedną funkcję naraz — po każdej zmianie uruchom skrypt na kopii danych, żeby wiedzieć, która modyfikacja wprowadziła błąd.
  • Sprawdzaj składnię przed uruchomieniem — polecenie bash -n skrypt.sh wykryje literówki i niedomknięte cudzysłowy, zanim skrypt zdąży coś nadpisać.
  • Trzymaj się kodów wyjścia — jeśli dodajesz własne zakończenia, używaj 0 dla sukcesu i wartości od 1 w górę dla błędów, inaczej skrypt nadrzędny nie odróżni sytuacji.

Ograniczenia i pułapki

  • To szkielet, nie gotowy program — generator nie wie, co ma robić twoje narzędzie. Daje poprawną strukturę i obsługę błędów, ale właściwą logikę dopisujesz sam.
  • Zakłada powłokę bash — wygenerowany kod korzysta z konstrukcji, których sh i dash nie znają. Przenoszenie go do innych powłok wymaga przepisania testów i obsługi argumentów.
  • Nie weryfikuje logiki — poprawny składniowo skrypt może robić coś odwrotnego, niż zamierzałeś. Kolejność kroków i warunki sprawdzasz sam, najlepiej na kopii danych.
  • Nie zarządza sekretami — szkielet nie zawiera odczytu haseł, kluczy ani plików chronionych. Wartości wrażliwych nie wpisuj w treść skryptu, bo trafią do historii wersji i do listy procesów.

Najczęstsze pytania

Co robi set -euo pipefail?

-e przerywa przy błędzie, -u zgłasza użycie niezdefiniowanej zmiennej, a pipefail zwraca błąd, gdy którykolwiek element potoku zawiedzie.

Jak debugować skrypt?

Uruchom z bash -x skrypt.sh albo dodaj set -x na początku — zobaczysz każdą wykonywaną komendę.

Czy skrypt będzie działał pod sh?

Nie zawsze — konstrukcje bash (np. [[ ]]) nie są przenośne do sh. Shebang wymusza uruchomienie przez bash.

Jak napisać prosty skrypt bash?

Zacznij od shebang, dodaj set -euo pipefail, zdefiniuj funkcję main i wywołaj ją na końcu z przekazaniem argumentów. Taki szkielet tworzy generator — zostaje dopisać właściwą logikę.

Jak uruchomić skrypt bash?

Nadaj plikowi prawo wykonywania przez chmod +x i uruchom go jako ./skrypt.sh. Możesz też pominąć ten krok i wywołać interpreter bezpośrednio: bash skrypt.sh.

Jak przekazać argumenty do skryptu bash?

Argumenty podajesz po nazwie skryptu, na przykład ./skrypt.sh arg1 arg2. W środku odczytujesz je jako $1, $2 i dalej, liczbę sprawdzasz przez $#, a całość przekazujesz funkcjom jako "$@".

Jak sprawdzić, czy plik istnieje w bash?

Użyj testu [[ -f "$plik" ]] dla zwykłego pliku albo [[ -d "$katalog" ]] dla katalogu. Cudzysłowy wokół zmiennej są konieczne, inaczej ścieżka ze spacją rozsypie porównanie.

Po co jest funkcja main w skrypcie bash?

Daje jednolity punkt wejścia i porządkuje kolejność definicji — najpierw funkcje pomocnicze, na końcu właściwa praca. Łatwiej wtedy dodać obsługę argumentów, sprzątanie po błędzie albo test całego przepływu.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!