GNU/Linux >> Znalost Linux >  >> Linux

Jak ladit Bash skript?

Mám nějaké problémy s některými skripty v bash, s chybami a neočekávaným chováním. Chtěl bych prozkoumat příčiny problémů, abych mohl použít opravy. Existuje způsob, jak přepnout nějaký druh „ladícího režimu“ pro bash, abych získal další informace?

Přijatá odpověď:

Spusťte bash skript pomocí bash -x ./script.sh nebo přidejte do skriptu set -x zobrazíte výstup ladění.

Další pomocí bash 4.1 nebo novější:

Pokud chcete zapsat výstup ladění do samostatného souboru, přidejte do skriptu toto:

exec 5> debug_output.txt
BASH_XTRACEFD="5"

Viz:https://stackoverflow.com/a/25593226/3776858

Pokud chcete vidět čísla řádků, přidejte toto:

PS4='$LINENO: '

Pokud máte přístup k logger příkaz, pak jej můžete použít k zápisu výstupu ladění přes váš syslog s časovým razítkem, názvem skriptu a číslem řádku:

#!/bin/bash

exec 5> >(logger -t $0)
BASH_XTRACEFD="5"
PS4='$LINENO: '
set -x

# Place your code here

Můžete použít volbu -p z logger příkaz pro nastavení individuálního zařízení a úrovně pro zápis výstupu přes místní syslog do jeho vlastního logfilu.


Linux
  1. Jak volat funkci Bash ve skriptu Bash uvnitř Awk?

  2. Jak rozdělit řetězec ve skriptu Bash

  3. Bash Script - Jak číst uživatelský vstup

  1. Jak zvýraznit Bash skripty ve Vimu?

  2. Jak předat parametry skriptu Bash?

  3. Jak opakovaně spouštět bash skript každých N sekund?

  1. Jak mohu otestovat svůj Bash skript na starších verzích Bash?

  2. Jak zabít python skript pomocí bash skriptu

  3. Jak odladím počáteční úlohu?