1. Trang chủ
  2. » Giáo Dục - Đào Tạo

045 debugging more tips kho tài liệu training

18 60 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 137,79 KB

Nội dung

Additional Debugging Tips and Tricks LinuxTrainingAcademy.com What You Will Learn ● ● ● ● ● Variables for debugging Manual debugging tips Syntax Highlighting More Bash built-ins File types LinuxTrainingAcademy.com Manual Debugging ● ● You can create your own debugging code Use a special variable like DEBUG ○ ○ DEBUG=true DEBUG=false LinuxTrainingAcademy.com #!/bin/bash DEBUG=true if $DEBUG then echo "Debug mode ON." else echo "Debug mode OFF." fi LinuxTrainingAcademy.com #!/bin/bash DEBUG=true $DEBUG && echo "Debug mode ON." #!/bin/bash DEBUG=false $DEBUG || echo "Debug mode OFF." LinuxTrainingAcademy.com #!/bin/bash DEBUG=true $DEBUG || echo "Debug mode OFF." LinuxTrainingAcademy.com #!/bin/bash DEBUG="echo" $DEBUG ls #!/bin/bash #DEBUG="echo" $DEBUG ls LinuxTrainingAcademy.com #!/bin/bash debug() { echo "Executing: $@" $@ } debug ls LinuxTrainingAcademy.com Manual Copy and Paste ● ● ● Open up a second terminal Copy and paste the commands into the terminal Can be helpful to use "set -x" on the command line LinuxTrainingAcademy.com Syntax Highlighting ● ● ● Syntax errors are common Typos, missing brackets, missing quotes, etc Use an editor with syntax highlighting ○ ○ ○ ○ ○ ○ vi / vim emacs nano gedit kate geany LinuxTrainingAcademy.com PS4 ● ● ● Controls what is displayed before a line when using the "-x" option The default value is "+" Bash Variables ○ BASH_SOURCE, LINENO, etc PS4='+ $BASH_SOURCE : $LINENO ' LinuxTrainingAcademy.com #!/bin/bash -x PS4='+ $BASH_SOURCE : $LINENO : ' TEST_VAR="test" echo "$TEST_VAR" + PS4='+ $BASH_SOURCE : $LINENO : ' + /test.sh : : TEST_VAR=test + /test.sh : : echo test test LinuxTrainingAcademy.com #!/bin/bash -x PS4='+ ${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}() ' debug() { echo "Executing: $@" $@ } debug ls + /test.sh:4:debug(): ls LinuxTrainingAcademy.com DOS vs Linux (Unix) File Types ● ● CRLF / Carriage Return, Line Feed cat -v script.sh #!/bin/bash^M # This file contains carriage returns.^M echo "Hello world."^M LinuxTrainingAcademy.com DOS vs Linux (Unix) File Types #!/bin/bash^M # This file contains carriage returns.^M echo "Hello world."^M bash: /test.sh: /bin/bash^M: bad interpreter: No such file or directory LinuxTrainingAcademy.com DOS vs Linux (Unix) File Types ● file script.sh ○ ● ● script.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators dos2unix script.sh file script.sh ○ script.sh: Bourne-Again shell script, ASCII text executable LinuxTrainingAcademy.com How does this happen? ● Using a Windows editor and uploading to Linux ○ ● ● Some editors can be configured to use just LF Pasting from Windows into a Linux terminal Pasting from a web browser into a terminal LinuxTrainingAcademy.com Summary ● ● ● ● DEBUG variables Syntax highlighting PS4 and set -x File types ○ ○ ○ cat -v dos2unix file LinuxTrainingAcademy.com ... ● ● ● Variables for debugging Manual debugging tips Syntax Highlighting More Bash built-ins File types LinuxTrainingAcademy.com Manual Debugging ● ● You can create your own debugging code Use... OFF." LinuxTrainingAcademy.com #!/bin/bash DEBUG=true $DEBUG || echo "Debug mode OFF." LinuxTrainingAcademy.com #!/bin/bash DEBUG="echo" $DEBUG ls #!/bin/bash #DEBUG="echo" $DEBUG ls LinuxTrainingAcademy.com... DEBUG ○ ○ DEBUG=true DEBUG=false LinuxTrainingAcademy.com #!/bin/bash DEBUG=true if $DEBUG then echo "Debug mode ON." else echo "Debug mode OFF." fi LinuxTrainingAcademy.com #!/bin/bash DEBUG=true

Ngày đăng: 17/11/2019, 08:18