Tải bản đầy đủ (.pdf) (14 trang)

044 debugging essentials kho tài liệu training

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (82.88 KB, 14 trang )

Debugging

LinuxTrainingAcademy.com


What You Will Learn


Built-in Bash Options for Debugging

LinuxTrainingAcademy.com


Why Debug?





A bug is really an error.
Examine the inner workings of your script.
Determine the root of unexpected behavior.
Fix bugs (errors).

LinuxTrainingAcademy.com


Built in Debugging Help







-x = Prints commands as they execute
After substitutions and expansions
Called an x-trace, tracing, or print debugging
#!/bin/bash -x
set -x


set +x to stop debugging

LinuxTrainingAcademy.com


#!/bin/bash -x
TEST_VAR="test"
echo "$TEST_VAR"

+ TEST_VAR=test
+ echo test
test
LinuxTrainingAcademy.com


#!/bin/bash
TEST_VAR="test"
set -x
echo $TEST_VAR
set +x

hostname
+ echo test
test
+ set +x
linuxsvr

LinuxTrainingAcademy.com


Built in Debugging Help



-e = Exit on error.
Can be combined with other options.





#!/bin/bash -ex
#!/bin/bash -xe
#!/bin/bash -e -x
#!/bin/bash -x -e

LinuxTrainingAcademy.com


#!/bin/bash -e
FILE_NAME="/not/here"

ls $FILE_NAME
echo $FILE_NAME
ls: cannot access /not/here: No
such file or directory
LinuxTrainingAcademy.com


#!/bin/bash -ex
FILE_NAME="/not/here"
ls $FILE_NAME
echo $FILE_NAME
+ FILE_NAME=/not/here
+ ls /not/here
ls: cannot access /not/here: No such
file or directory
LinuxTrainingAcademy.com


Built in Debugging Help



-v = Prints shell input lines as they are read.
Can be combined with other options.

LinuxTrainingAcademy.com


#!/bin/bash -v
TEST_VAR="test"

echo "$TEST_VAR"
#!/bin/bash -v
TEST_VAR="test"
echo "$TEST_VAR"
test
LinuxTrainingAcademy.com


#!/bin/bash -vx
TEST_VAR="test"
+ TEST_VAR=test
echo "$TEST_VAR"
+ echo test
test

LinuxTrainingAcademy.com


For more information.
help set | less

LinuxTrainingAcademy.com


Summary






Built-in Bash Options
-x
-e
-v

LinuxTrainingAcademy.com



×