FAQ Pseudo-debugowanie skryptu Bash

Dyskusja w 'Oh'Linux? Software hacking' rozpoczęta przez użytkownika Silas Mariusz, 31 Lipiec 2015.

Ładowanie...
  1. Silas Mariusz
    Offline

    Silas Mariusz SysOp Administrator

    Dołączył:
    5 Kwiecień 2008
    Wiadomości:
    6 033
    Miejscowość:
    Nowy Sącz
    Local Time:
    12:38
    Oceny:
    +1 340 / 30 / -5
    Followers:
    22
    QNAP:
    TVS-x71
    Ethernet:
    1 GbE
    TVS-x71 1 GbE
    1. Eksportujemy zmienną globalną PS4, która będzie odpowiedzialna za kwestie wizualną:
      Kod (Bash):
      1. export PS4="\e[0;33m+\e[0;36m"'(${BASH_SOURCE##*/}:\e[0;35m${LINENO}'"\e[0;31m\e[0;37m) "
    2. Aby uruchomić skrypt bash z włączonym debugowaniem, wykonaj następujące:
      • Wersja interaktywna:
        Kod (Bash):
        1. sh -c '_p="/etc/init.d/nvrd.sh" && read -p "Script path [${_p}]: " _t; [ -z "$_t" ] && _t=$_p; (set -x; date ; . $_t) | tee -a /share/Public/trace_run.out'
      • Wersja nieinteraktywna, w której na początku deklarujemy komendę lub ścieżkę do pliku .sh:
        Kod (Bash):
        1. _t="/etc/init.d/nvrd.sh.stop"       # tu nalezy podac sciezke lub polecenie shell
        2. _l=/share/Public/trace_run.out      # sciezka do pliku logowania
        3.  
        4. sh -c "set -x; date >> \"$_l\" ; . $_t 2>&1 | tee \"${_l}.tmp\"; sed -r 's/'$(echo -e "\033")'\[[0-9]{1,2}(;([0-9]{1,2})?)?[mK]//g' \"${_l}.tmp\" > \"$_l\""
    Efekt:
    upload_2015-7-31_0-49-34.
     

Poleć tę stronę