除錯模式下的 Hello World

$ cat hello.sh 
#!/bin/bash 
echo "Hello World"
$ bash -x hello.sh 
+ echo Hello World
Hello World

-x 引數使你可以遍歷指令碼中的每一行。這裡有一個很好的例子:

$ cat hello.sh
#!/bin/bash 
echo "Hello World\n" 
adding_string_to_number="s"
v=$(expr 5 + $adding_string_to_number) 

$ ./hello.sh 
Hello World

expr: non-integer argument

以上提示錯誤不足以跟蹤指令碼; 但是,使用以下方法可以更好地瞭解在指令碼中查詢錯誤的位置。

$ bash -x hello.sh 
+ echo Hello World\n
Hello World

+ adding_string_to_number=s
+ expr 5 + s
expr: non-integer argument
+ v=