Pageferry
Pracovní postupy

Bash spustit skript: od otevření složky po exit code

03
Spustit skript

Spustit Bash skript s argumenty v WSL nebo přes SSH

Bash skript lze spustit třemi způsoby: bash script.sh arg1 arg2, ./script.sh po chmod +x, což funguje díky shebang řádku, nebo přes vestavěný příkaz exec, který nahradí shell a nikdy se nevrátí. První forma je nejjednodušší pro začátek, protože nevyžaduje změnu oprávnění. Shell spustí příkaz v prostředí, které jste si vybrali, což je WSL na vašem PC nebo Linuxový systém, ke kterému máte přístup přes SSH, a karta v chatu zobrazuje skutečný výstup a exit code. Vy určujete argumenty, takže můžete v jedné konverzaci otestovat běžný případ i případ selhání. Často se lidé ptají, kterou formu zvolit: použijte bash script.sh, když skript testujete, protože funguje i když soubor nemá nastavený příznak spustitelnosti, a přepněte na ./script.sh, až bude skript finální a začíná shebang řádkem. Ať už použijete kteroukoli formu, exit status je stejné číslo od 0 do 255 a 0 vždy znamená, že skript skončil úspěšně.

01

Otevřete složku

Vyberte složku, která obsahuje váš skript, jako pracovní složku; nástroje pro práci se soubory, jako read_file a grep, v ní fungují. Nástroje pro práci se soubory fungují uvnitř této složky, zatímco Shell, web a SSH nejsou omezeny pouze na ni.

02

Vyberte režim schválení

Použijte Ask first, abyste viděli každou změnu jako diff, nebo Plan only, abyste nejprve přečetli plán. Auto-run provede akci okamžitě. Ask first se pozastaví pouze před akcemi, které něco mění.

03

Požádejte o spuštění

Popište spuštění jednoduchými slovy, například: spusťte skript s argumentem test. Uveďte WSL nebo svůj server, pokud máte oba. Uveďte název skriptu a jeho argumenty přesně.

04

Přečtěte výsledek

Otevřete kartu a podívejte se na výstup a skutečný exit code, poté přijměte nebo zamítněte jakoukoli úpravu. Číslo různé od nuly je pouze informace. Spusťte jej znovu po každé přijaté úpravě. Porovnejte jej s výsledkem, který jste očekávali.

Malý ukázkový skript

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 končí řádkem s použitím a exit code 2, když chybí jméno, bere volitelný počet s výchozí hodnotou 1 a pouze tiskne pozdravy v cyklu. Přečtěte si jej před spuštěním: není zde sudo, žádné stahování ani nic, co by přesouvalo nebo mazalo soubory, takže je bezpečné ho testovat na jakémkoli stroji, který vlastníte. Řádek po řádku: shebang určuje interpret, set -eu zastaví skript při chybách a nevytvořených proměnných, kontrola $# spočítá argumenty a cyklus for pouze vypisuje.

Spustit skript ve čtyřech malých krocích

Vytvořit soubor se skriptem

Začněte s prázdnou pracovní složkou. Požádejte agenta o napsání výše uvedeného příkladu a write_file vytvoří greet.sh v této složce. Otevřete kartu a přečtěte si soubor řádek po řádku: první řádek je shebang, který určuje interpret, set -eu zastaví skript při chybách a nevytvořených proměnných a kontrola $# chrání zbytek před chybějícím jménem. Pod Ask first nový soubor čeká na vaše schválení, než bude zapsán. Ještě nic neběží. Větví použití tohoto skriptu volí 2 pro nesprávné použití, což je běžná konvence. Soubor přijměte pouze tehdy, když pochopíte každý řádek, a pokud ne, požádejte agenta o vysvětlení. Zamítnutá úprava ponechá složku nezměněnou.

Spustit jej a přečíst exit code

Lidé, kteří hledají „bash execute script“, obvykle chtějí jeden řádek: bash greet.sh test. Požádejte agenta o spuštění, a Shell spustí příkaz v prostředí vašeho chatu, například WSL, a pošle zpět skutečný výstup a skutečný exit code. Rozbalte kartu pro plný výstup. Poté požádejte o stejné spuštění bez argumentu a měli byste vidět řádek s použitím a exit code 2. Exit code pro cli aplikace je číslo od 0 do 255, které volající čte, a 0 znamená úspěch,. Exit code 127 znamená, že příkaz nebyl nalezen, a 126 znamená, že soubor nelze provést, takže tato dvě čísla ukazují na překlep, chybějící program nebo chybějící oprávnění k provedení.

Přečíst si argumenty uvnitř skriptu

read_file zobrazí skript a grep najde, kde se používá $1 a $2, takže můžete zkontrolovat, zda má každý argument výchozí hodnotu nebo chybovou zprávu. Zde je způsob, jak parsovat volitelné argumenty: skript cykluje pomocí getopts a pouze s jednou nebo dvěma hodnotami stačí prosté $1 a ${2:-1}. Alias s argumenty se nechoval jako funkce, protože alias pouze nahrazuje zadané slovo textem, takže použijte funkci, když musí být hodnoty uprostřed. Požádejte agenta o změnu jedné věci, například výchozí hodnoty počtu, a přečtěte si diff, který zobrazí edit_file. Poté znovu spusťte skript a porovnejte nový exit code s tím starým. Plan only může vypsat parametry, kterým skript rozumí, aniž by něco spustil.

Spustit stejný skript na serveru, který vlastníte

Stejné kroky fungují, když je pracovním prostředím Linuxový systém, který vlastníte, přístupný přes SSH. Nástroje pro práci se soubory fungují i nadále v pracovní složce chatu, zatímco příkazy Shell běží v prostředí, které jste si vybrali, takže zkontrolujte, na kterou kartu se odkazuje. Vestavěný příkaz exec, který lidé hledají jako „bash exec script“, nahradí shell jiným příkazem a nikdy se nevrátí, takže nic po něm neběží a exit code je ten nového příkazu. Uchovejte si kopii předtím, než skript přesune nebo smaže soubory, spusťte ho s echo nejprve jako suchý test a používejte pouze stroje, které máte oprávnění spravovat. Přečtěte si finální kartu před uzavřením chatu. Když předáte všechny hodnoty dalšímu příkazu, napište "$@" v uvozovkách, aby každá hodnota zachovala svůj tvar.

Pageferry pro Windows

Otestovat Bash skript na vlastním počítači

Stáhnout Pageferry ↗